Spec-Zone.ru › OpenJDK 24

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

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 Platform предоставляет специализированные подклассы 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)
Разбирает текст из заданной строки, чтобы получить объект.

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

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

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

Формат

protected Format()
Единственный конструктор. (Для вызова подклассами, обычно неявный.)

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

форматировать

public final String format(Object obj)
Форматирует объект, создавая строку.
Требования к реализации:
Этот метод возвращает строку, которая будет равна строке, возвращаемой методом
format(obj, new StringBuffer(), new FieldPosition(0)).toString();
Параметры:
obj - Объект для форматирования
Возвращает:
Отформатированная строка.
Исключения:
IllegalArgumentException - если формат не может отформатировать данный объект

форматировать

public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
Форматирует объект и добавляет полученный текст в заданный буфер строк. Если аргумент pos идентифицирует поле, используемое в формате, то его индексы устанавливаются в начало и конец первого такого поля.
Параметры:
obj - Объект для форматирования
toAppendTo - место, куда будет добавлен текст
pos - FieldPosition, идентифицирующий поле в отформатированном тексте
Возвращает:
буфер строк, переданный как toAppendTo, с добавленным отформатированным текстом
Исключения:
NullPointerException - если toAppendTo или pos равно null
IllegalArgumentException - если формат не может отформатировать данный объект

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator. Вы можете использовать возвращённый AttributedCharacterIterator для создания результирующей строки, а также для получения информации о результирующей строке.

Каждый ключ атрибута AttributedCharacterIterator будет типа Field. Каждая реализация Format определяет допустимые значения для каждого атрибута в AttributedCharacterIterator, но обычно ключ атрибута также используется в качестве значения атрибута.

Примечание API:
Подклассы, поддерживающие поля, должны переопределять этот метод и создавать AttributedCharacterIterator с осмысленными атрибутами.
Требования к реализации:
По умолчанию создаётся AttributedCharacterIterator без атрибутов.
Параметры:
obj - Объект для форматирования
Возвращает:
AttributedCharacterIterator, описывающий отформатированное значение.
Исключения:
NullPointerException - если obj равно null.
IllegalArgumentException - когда формат не может отформатировать данный объект.
С:
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.

клонировать

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/Format.html

Spec-Zone.ru

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