Spec-Zone.ru › OpenJDK 25

Класс Format

java.lang.Object
java.text.Format
Все реализуемые интерфейсы:
Serializable, Cloneable
Прямые известные подклассы:
DateFormat, ListFormat, MessageFormat, NumberFormat
public abstract class Format extends Object implements Serializable, Cloneable
Format — абстрактный базовый класс для форматирования информации, зависящей от локали, такой как даты, сообщения, числа и списки.

Format определяет программный интерфейс для форматирования объектов, зависящих от локали, в Strings (метод format) и для разбора Strings обратно в объекты (метод parseObject).

Как правило, метод parseObject формата должен уметь разбирать любую строку, сформированную его методом format. Однако в исключительных случаях это может быть невозможно. Например, метод format может создать два смежных целых числа без разделителя между ними, и в этом случае parseObject не сможет определить, какие цифры относятся к какому числу.

Создание подклассов

Платформа Java предоставляет специализированные подклассы Format — DateFormat, MessageFormat, NumberFormat и ListFormat — для форматирования дат, сообщений, чисел и списков соответственно.

Конкретные подклассы должны реализовать три метода:

  1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  2. formatToCharacterIterator(Object obj)
  3. parseObject(String source, ParsePosition pos)
Эти общие методы обеспечивают полиморфный разбор и форматирование объектов и используются, например, в MessageFormat. Подклассы часто также предоставляют дополнительные методы format для определённых типов входных данных, а также методы parse для определённых типов результатов. Любой метод parse, не принимающий аргумент ParsePosition, должен выбрасывать ParseException, если в начале входного текста нет текста в требуемом формате.

Большинство подклассов также реализуют следующие фабричные методы:

  1. getInstance — для получения подходящего полезного объекта формата для текущей локали
  2. getInstance(Locale) — для получения подходящего полезного объекта формата для указанной локали
Кроме того, некоторые подклассы могут реализовывать другие методы getXxxxInstance для более специализированного управления. Например, класс NumberFormat предоставляет методы getPercentInstance и getCurrencyInstance для получения специализированных средств форматирования чисел.

Подклассы Format, позволяющие программистам создавать объекты для локалей (например, с помощью getInstance(Locale)), также должны реализовать следующий метод класса:

public static Locale[] getAvailableLocales()

Подклассам также следует предусмотреть возможность гибкого разбора. Определение гибкости передаётся подклассу.

Наконец, подклассы могут определять набор констант для идентификации различных полей в форматированном выводе. Эти константы используются для создания объекта FieldPosition, который определяет, какая информация содержится в поле и где оно расположено в форматированном результате. Имена этих констант должны иметь вид item_FIELD, где item обозначает поле. Примеры таких констант см. в ERA_FIELD и связанных с ним классах в DateFormat.

Синхронизация

Форматы, как правило, не синхронизированы. Рекомендуется создавать отдельный экземпляр формата для каждого потока. Если несколько потоков одновременно обращаются к формату, синхронизацию необходимо обеспечить извне.

Начиная с версии:
1.1
См. также:
  • ParsePosition
  • FieldPosition
  • NumberFormat
  • DateFormat
  • MessageFormat
  • ListFormat
  • Сериализованная форма

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  Format.Field
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом из Format.formatToCharacterIterator, и в качестве идентификаторов полей в FieldPosition.

Краткое описание конструкторов

Format()
Модификатор Конструктор Описание
protected
Единственный конструктор.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Создаёт и возвращает копию этого объекта.
final String format(Object obj)
Форматирует объект и создаёт строку.
abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
Форматирует объект и добавляет полученный текст в указанный буфер строки.
AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator.
Object parseObject(String source)
Разбирает текст с начала указанной строки и создаёт объект.
abstract Object parseObject(String source, ParsePosition pos)
Разбирает текст из указанной строки и создаёт объект.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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

public Object clone()
Создаёт и возвращает копию этого объекта.
Переопределяет:
clone в классе Object
Возвращает:
клон этого экземпляра.
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/text/Format.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API