Format
- Все реализуемые интерфейсы:
Serializable, Cloneable
- Прямые известные подклассы:
DateFormat, ListFormat, MessageFormat, NumberFormat
public abstract class Format extends Object implements Serializable, Cloneable
Format — абстрактный базовый класс для форматирования информации, зависящей от локали, такой как даты, сообщения, числа и списки. Format определяет программный интерфейс для форматирования объектов, зависящих от локали, в Stringы (метод format), а также для обратного разбора String в объекты (метод parseObject).
Как правило, метод parseObject формата должен уметь разбирать любую строку, созданную его методом format. Однако возможны исключительные случаи, когда это невозможно. Например, метод format может создать два расположенных рядом целых числа без разделителя между ними, и в таком случае parseObject не сможет определить, какие цифры относятся к каждому числу.
Создание подклассов
Платформа Java предоставляет специализированные подклассы Format — DateFormat, MessageFormat, NumberFormat и ListFormat — для форматирования дат, сообщений, чисел и списков соответственно.
Конкретные подклассы должны реализовать три метода:
-
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 |
Разбирает текст из заданной строки и создает объект. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Показывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Метод завершения устарел и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода для этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать, пока он не будет пробужден, обычно посредством вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать, пока он не будет пробужден, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время. |
final void |
wait |
Заставляет текущий поток ожидать, пока он не будет пробужден, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время. |
Подробное описание конструкторов
Format
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—FieldPosition, идентифицирующий поле в отформатированном тексте - Возвращает:
- буфер строки, переданный в качестве
toAppendTo, с добавленным отформатированным текстом - Выбрасывает:
-
NullPointerException— еслиtoAppendToилиposравен null -
IllegalArgumentException— если Format не может отформатировать заданный объект
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator. Возвращенный AttributedCharacterIterator можно использовать для построения результирующей строки, а также для получения сведений о ней. Каждый ключ атрибута AttributedCharacterIterator будет иметь тип Field. Каждая реализация Format самостоятельно определяет допустимые значения каждого атрибута в AttributedCharacterIterator, однако обычно ключ атрибута также используется в качестве значения атрибута.
- Примечание API:
- Подклассам, поддерживающим поля, следует переопределить этот метод и создать
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—Stringдля разбора -
pos— объектParsePositionс информацией об индексе и индексе ошибки, как описано выше. - Возвращает:
Object, разобранный из строки. В случае ошибки возвращаетnull.- Выбрасывает:
-
NullPointerException— еслиsourceилиposравенnull.
parseObject
public Object parseObject(String source) throws ParseException
- Параметры:
-
source—String, который разбирается с начала строки. - Возвращает:
Object, разобранный из строки.- Выбрасывает:
-
ParseException— если разбор не удался -
NullPointerException— еслиsourceравенnull.
clone
© 1993, 2025, 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.