Spec-Zone.ru › OpenJDK 27

Format

java.lang.Object
java.text.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 — для форматирования дат, сообщений, чисел и списков соответственно.

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

  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
Модификатор и тип Метод Описание
boolean equals(Object obj)
Показывает, равен ли этот объект другому объекту.
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(long timeoutMillis)
Заставляет текущий поток ожидать, пока он не будет пробужден, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать, пока он не будет пробужден, обычно посредством вызова 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

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

Сообщить об ошибке или предложить улучшение
Дополнительные сведения об API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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