Формат класса
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
-
DateFormat,MessageFormat,NumberFormat
public abstract class Format extends Object implements Serializable, Cloneable
Format — это абстрактный базовый класс для форматирования информации, чувствительной к локали, такой как даты, сообщения и числа. Format определяет программно-ориентированный интерфейс для форматирования локали-зависимых объектов в String (метод format) и для разбора String обратно в объекты (метод parseObject).
Как правило, метод parseObject формата должен быть способен проанализировать любую строку, отформатированную методом format. Однако могут быть исключительные случаи, когда это невозможно. Например, метод format может создать два смежных целых числа без разделителя между ними, и в этом случае метод parseObject не сможет определить, какие цифры относятся к какому числу.
Наследование
Java Platform предоставляет три специализированных подкласса Format — DateFormat, MessageFormat, и NumberFormat — для форматирования дат, сообщений и чисел соответственно.
Конкретные подклассы должны реализовать три метода:
-
format(Object obj, StringBuffer toAppendTo, FieldPosition pos) -
formatToCharacterIterator(Object obj) -
parseObject(String source, ParsePosition pos)
MessageFormat. Подклассы часто также предоставляют дополнительные методы format для конкретных типов входных данных, а также методы parse для конкретных типов результирующих данных. Любой метод parse, который не принимает аргумент ParsePosition, должен генерировать исключение ParseException, если в начале входного текста нет текста в требуемом формате. Большинство подклассов также будут реализовывать следующие фабричные методы:
-
getInstanceдля получения подходящего объекта формата для текущей локали -
getInstance(Locale)для получения подходящего объекта формата для указанной локали
getXxxxInstance для более специализированного управления. Например, класс NumberFormat предоставляет методы getPercentInstance и getCurrencyInstance для получения специализированных форматировщиков чисел. Подклассы Format, которые позволяют программистам создавать объекты для локалей (с помощью getInstance(Locale), например), должны также реализовывать следующий статический метод:
public static Locale[] getAvailableLocales()
И, наконец, подклассы могут определить набор констант для идентификации различных полей в отформатированном выводе. Эти константы используются для создания объекта FieldPosition, который идентифицирует информацию, содержащуюся в поле, и его позицию в отформатированном результате. Эти константы должны иметь имя item_FIELD, где item идентифицирует поле. Примеры таких констант см. в классе ERA_FIELD и его аналогах в DateFormat.
Синхронизация
Форматы, как правило, не синхронизируются. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если к формату обращаются несколько потоков одновременно, необходимо обеспечить внешнюю синхронизацию.
- С:
- 1.1
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Format.Field |
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator возвращаемом из Format.formatToCharacterIterator и в качестве идентификаторов полей в FieldPosition. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт и возвращает копию этого объекта. |
final String |
format |
Форматирует объект для получения строки. |
abstract StringBuffer |
format |
Форматирует объект и добавляет полученный текст в заданный буфер строк. |
AttributedCharacterIterator |
formatToCharacterIterator |
Форматирует объект, создавая AttributedCharacterIterator. |
Object |
parseObject |
Разбирает текст с начала заданной строки для получения объекта. |
abstract Object |
parseObject |
Разбирает текст из строки для получения объекта. |
Подробное описание конструкторов
Формат
protected Format()
Подробное описание методов
format
public final String format(Object obj)
format(obj, new StringBuffer(), new FieldPosition(0)).toString();
- Параметры:
-
obj- Объект для форматирования - Возвращает:
- Отформатированная строка.
- Исключения:
-
IllegalArgumentException- если Format не может отформатировать данный объект
format
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
pos идентифицирует поле, используемое форматом, то его индексы устанавливаются в начало и конец первого такого поля, встреченного в тексте.- Параметры:
-
obj- Объект для форматирования -
toAppendTo- место, куда будет добавлен текст -
pos- AFieldPositionидентифицирующий поле в отформатированном тексте - Возвращает:
- переданный в качестве
toAppendToбуфер строк, с добавленным отформатированным текстом - Исключения:
-
NullPointerException- еслиtoAppendToилиposравно null -
IllegalArgumentException- если Format не может отформатировать данный объект
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator. Вы можете использовать возвращённый AttributedCharacterIterator для построения результирующей строки, а также для получения информации о результирующей строке. Каждый ключ атрибута AttributedCharacterIterator будет типа Field. Зависит от реализации Format , какие значения допустимы для каждого атрибута в AttributedCharacterIterator, но, как правило, ключ атрибута также используется в качестве значения атрибута.
Базовая реализация создаёт AttributedCharacterIterator без атрибутов. Подклассы, поддерживающие поля, должны переопределять этот метод и создавать AttributedCharacterIterator с осмысленными атрибутами.
- Параметры:
-
obj- Объект для форматирования - Возвращает:
- AttributedCharacterIterator, описывающий отформатированное значение.
- Исключения:
-
NullPointerException- если obj равно null. -
IllegalArgumentException- если Format не может отформатировать данный объект. - С:
- 1.4
parseObject
public abstract Object parseObject(String source, ParsePosition pos)
Метод пытается распарсить текст, начиная с индекса, заданного pos. Если парсинг успешен, то индекс pos обновляется до индекса после последнего использованного символа (парсинг не обязательно использует все символы до конца строки), и возвращается распарсенный объект. Обновлённый pos может быть использован для указания начальной точки для следующего вызова этого метода. Если произошла ошибка, то индекс pos не изменяется, индекс ошибки pos устанавливается в индекс символа, где произошла ошибка, и возвращается null.
- Параметры:
-
source- Строка, часть которой должна быть распарсена. -
pos- Объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше. - Возвращает:
- Объект, распарсенный из строки. В случае ошибки возвращает null.
- Исключения:
-
NullPointerException- еслиsourceилиposравно null.
parseObject
public Object parseObject(String source) throws ParseException
- Параметры:
-
source- Строка, начало которой должно быть распарсено. - Возвращает:
- Объект, распарсенный из строки.
- Исключения:
-
ParseException- если начало указанной строки нельзя распарсить. -
NullPointerException- еслиsourceравно null.
clone
public Object clone()
- Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный экземпляр.
- См. также:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/Format.html