Spec-Zone.ru › OpenJDK 21

Формат класса

java.lang.Object
java.text.Format
Все реализованные интерфейсы:
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-платформа предоставляет три специализированных подкласса Format — DateFormat, MessageFormat, и NumberFormat — для форматирования дат, сообщений и чисел соответственно.

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

  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
  • Сериализованная форма

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

Модификатор и тип Класс Описание
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)
Анализирует текст из строки для получения объекта.

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

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

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

Формат

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, но, как правило, ключ атрибута используется также как и значение атрибута.

Реализация по умолчанию создаёт 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
Возвращает:
клонированный экземпляр.
См. также:
  • Cloneable

© 1993, 2023, 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/21/docs/api/java.base/java/text/Format.html

Spec-Zone.ru

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