Spec-Zone.ru › OpenJDK 17

Класс MessageFormat

java.lang.Object
java.text.Format
java.text.MessageFormat
Все реализованные интерфейсы:
Serializable, Cloneable
public class MessageFormat extends Format
MessageFormat предоставляет средство для создания конкатенированных сообщений нейтральным для языка способом. Используйте это для построения сообщений, отображаемых для конечных пользователей.

MessageFormat принимает набор объектов, форматирует их, а затем вставляет отформатированные строки в шаблон в соответствующих местах.

Примечание: MessageFormat отличается от других классов Format тем, что вы создаете объект MessageFormat с помощью одного из его конструкторов (а не с помощью метода фабрики в стиле getInstance). Методы фабрики не нужны, потому что MessageFormat сам по себе не реализует специфичное для локали поведение. Любое специфичное для локали поведение определяется шаблоном, который вы предоставляете, а также подформатами, используемыми для вставленных аргументов.

Шаблоны и их интерпретация

MessageFormat использует шаблоны следующего вида:
 MessageFormatPattern:
         String
         MessageFormatPattern FormatElement String

 FormatElement:
         { ArgumentIndex }
         { ArgumentIndex , FormatType }
         { ArgumentIndex , FormatType , FormatStyle }

 FormatType: one of 
         number date time choice

 FormatStyle:
         short
         medium
         long
         full
         integer
         currency
         percent
         SubformatPattern
 

Внутри строки пара одинарных кавычек может использоваться для цитирования любых произвольных символов, кроме одинарных кавычек. Например, строка шаблона "'{0}'" представляет строку "{0}", а не FormatElement. Сама одинарная кавычка должна быть представлена удвоенными одинарными кавычками '' во всей строке. Например, строка шаблона "'{''}'" интерпретируется как последовательность '{ (начало цитирования и левая фигурная скобка), '' (одинарная кавычка) и }' (правая фигурная скобка и конец цитирования), а не '{' и '}' (зацитированные левая и правая фигурные скобки): представляющая строку "{'}", а не "{}".

SubformatPattern интерпретируется соответствующим подформатом, и применяются правила шаблонов, зависящие от подформата. Например, строка шаблона "{1,number,$'#',##}" (SubformatPattern с подчеркиванием) создаст числовой формат с зацитированным знаком решетки, с результатом, например: "$#31,45". Обратитесь к документации каждого подкласса Format для получения подробной информации.

Любая незакрытая кавычка рассматривается как закрытая в конце данного шаблона. Например, строка шаблона "'{0}" рассматривается как шаблон "'{0}'".

Любые фигурные скобки в незацитированном шаблоне должны быть сбалансированы. Например, "ab {0} de" и "ab '}' de" являются допустимыми шаблонами, но "ab {0'}' de", "ab } de" и "''{''" - нет.

Предупреждение:
Правила использования кавычек в шаблонах форматов сообщений, к сожалению, оказались несколько запутанными. В частности, локализаторам не всегда очевидно, нужно ли удваивать одинарные кавычки или нет. Убедитесь, что вы информируете локализаторов о правилах и сообщите им (например, используя комментарии в исходных файлах пакетов ресурсов), какие строки будут обрабатываться MessageFormat. Обратите внимание, что локализаторам может потребоваться использовать одинарные кавычки в переведенных строках, где в исходной версии их нет.

Значение ArgumentIndex - это неотрицательное целое число, записанное с помощью цифр '0' по '9', и представляет индекс в массиве arguments, передаваемом в методы format или результирующий массив, возвращаемый методами parse.

Значения FormatType и FormatStyle используются для создания экземпляра Format для элемента форматирования. В следующей таблице показано, как значения сопоставляются с экземплярами Format. Комбинации, не показанные в таблице, являются недопустимыми. SubformatPattern должен быть допустимой строкой шаблона для используемого подкласса Format.

Shows how FormatType and FormatStyle values map to Format instances
FormatType FormatStyle Созданный подформат
(none) (none) null
number (none) NumberFormat.getInstance(getLocale())
integer NumberFormat.getIntegerInstance(getLocale())
currency NumberFormat.getCurrencyInstance(getLocale())
percent NumberFormat.getPercentInstance(getLocale())
SubformatPattern new DecimalFormat(subformatPattern, DecimalFormatSymbols.getInstance(getLocale()))
date (none) DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getDateInstance(DateFormat.LONG, getLocale())
full DateFormat.getDateInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
time (none) DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getTimeInstance(DateFormat.LONG, getLocale())
full DateFormat.getTimeInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
choice SubformatPattern new ChoiceFormat(subformatPattern)

Информация об использовании

Вот несколько примеров использования. В реальных интернационализированных программах шаблон формата сообщения и другие статические строки, конечно же, будут получаться из пакетов ресурсов. Другие параметры будут динамически определяться во время выполнения.

В первом примере используется статический метод MessageFormat.format, который внутренне создает MessageFormat для одноразового использования:

 int planet = 7;
 String event = "a disturbance in the Force";

 String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
     planet, new Date(), event);
 
Результат:
 At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
 

В следующем примере создается экземпляр MessageFormat, который можно использовать многократно:

 int fileCount = 1273;
 String diskName = "MyDisk";
 Object[] testArgs = {new Long(fileCount), diskName};

 MessageFormat form = new MessageFormat(
     "The disk \"{1}\" contains {0} file(s).");

 System.out.println(form.format(testArgs));
 
Результат с разными значениями для fileCount:
 The disk "MyDisk" contains 0 file(s).
 The disk "MyDisk" contains 1 file(s).
 The disk "MyDisk" contains 1,273 file(s).
 

Для более сложных шаблонов можно использовать ChoiceFormat для создания правильных форм для единственного и множественного числа:

 MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}.");
 double[] filelimits = {0,1,2};
 String[] filepart = {"no files","one file","{0,number} files"};
 ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
 form.setFormatByArgumentIndex(0, fileform);

 int fileCount = 1273;
 String diskName = "MyDisk";
 Object[] testArgs = {new Long(fileCount), diskName};

 System.out.println(form.format(testArgs));
 
Результат с разными значениями для fileCount:
 The disk "MyDisk" contains no files.
 The disk "MyDisk" contains one file.
 The disk "MyDisk" contains 1,273 files.
 

Вы можете создать ChoiceFormat программным способом, как в приведенном выше примере, или с помощью шаблона. См. ChoiceFormat для получения дополнительной информации.


 form.applyPattern(
    "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
 

Примечание: Как мы видим выше, строка, созданная ChoiceFormat в MessageFormat, рассматривается как специальная; вхождения '{' используются для обозначения подформатов и вызывают рекурсию. Если вы создаете и MessageFormat, и ChoiceFormat программным способом (вместо использования строковых шаблонов), то будьте осторожны, чтобы не создать формат, который рекурсивно вызывает сам себя, что приведет к бесконечному циклу.

Когда один аргумент анализируется более одного раза в строке, последнее совпадение будет окончательным результатом анализа. Например,

 MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}");
 Object[] objs = {new Double(3.1415)};
 String result = mf.format( objs );
 // result now equals "3.14, 3.1"
 objs = null;
 objs = mf.parse(result, new ParsePosition(0));
 // objs now equals {new Double(3.1)}
 

Аналогично, парсинг с помощью объекта MessageFormat с использованием шаблонов, содержащих несколько вхождений одного и того же аргумента, вернёт последнюю совпадение. Например,

 MessageFormat mf = new MessageFormat("{0}, {0}, {0}");
 String forParsing = "x, y, z";
 Object[] objs = mf.parse(forParsing, new ParsePosition(0));
 // result now equals {new String("z")}
 

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

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

Since:
1.1
See Also:
  • Locale
  • Format
  • NumberFormat
  • DecimalFormat
  • DecimalFormatSymbols
  • ChoiceFormat
  • DateFormat
  • SimpleDateFormat
  • Сериализованная форма

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

Modifier and Type Class Description
static class  MessageFormat.Field
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator , возвращаемом из MessageFormat.formatToCharacterIterator.

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

Конструктор Описание
MessageFormat(String pattern)
Создаёт MessageFormat для локали по умолчанию FORMAT и указанного шаблона.
MessageFormat(String pattern, Locale locale)
Создаёт MessageFormat для указанной локали и шаблона.

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

Modifier and Type Метод Описание
void applyPattern(String pattern)
Устанавливает шаблон, используемый этим форматом сообщений.
Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Сравнение на равенство двух объектов формата сообщений
final StringBuffer format(Object[] arguments, StringBuffer result, FieldPosition pos)
Форматирует массив объектов и добавляет шаблон MessageFormat, с элементами формата, заменёнными отформатированными объектами, в предоставленный StringBuffer.
final StringBuffer format(Object arguments, StringBuffer result, FieldPosition pos)
Форматирует массив объектов и добавляет шаблон MessageFormat, с элементами формата, заменёнными отформатированными объектами, в предоставленный StringBuffer.
static String format(String pattern, Object... arguments)
Создаёт MessageFormat с заданным шаблоном и использует его для форматирования заданных аргументов.
AttributedCharacterIterator formatToCharacterIterator(Object arguments)
Форматирует массив объектов и вставляет их в шаблон MessageFormat, создавая AttributedCharacterIterator.
Format[] getFormats()
Получает форматы, используемые для элементов формата в ранее заданной строке шаблона.
Format[] getFormatsByArgumentIndex()
Получает форматы, используемые для значений, переданных в методы format или возвращаемых методами parse.
Locale getLocale()
Получает локаль, используемую при создании или сравнении подформатов.
int hashCode()
Генерирует код хэша для объекта формата сообщений.
Object[] parse(String source)
Парсит текст с начала заданной строки, чтобы получить массив объектов.
Object[] parse(String source, ParsePosition pos)
Парсит строку.
Object parseObject(String source, ParsePosition pos)
Парсит текст из строки, чтобы получить массив объектов.
void setFormat(int formatElementIndex, Format newFormat)
Устанавливает формат для использования для элемента формата с заданным индексом элемента формата в ранее установленной строке шаблона.
void setFormatByArgumentIndex(int argumentIndex, Format newFormat)
Устанавливает формат для использования для элементов формата в ранее установленной строке шаблона, использующих заданный индекс аргумента.
void setFormats(Format[] newFormats)
Устанавливает форматы для использования для элементов формата в ранее установленной строке шаблона.
void setFormatsByArgumentIndex(Format[] newFormats)
Устанавливает форматы для использования для значений, переданных в методы format или возвращаемых методами parse.
void setLocale(Locale locale)
Устанавливает локаль, которая будет использоваться при создании или сравнении подформатов.
String toPattern()
Возвращает шаблон, представляющий текущее состояние формата сообщений.

Методы, унаследованные от класса java.text.Format

format, parseObject

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

finalize, getClass, notify, notifyAll, toString, wait, wait, wait

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

MessageFormat

public MessageFormat(String pattern)
Создаёт MessageFormat для локали по умолчанию FORMAT и указанного шаблона. Конструктор сначала устанавливает локаль, затем анализирует шаблон и создаёт список подформатов для элементов форматирования, содержащихся в нём. Шаблоны и их интерпретация указаны в описании класса.
Параметры:
pattern - шаблон для этого формата сообщений
Исключения:
IllegalArgumentException - если шаблон некорректен
NullPointerException - если pattern является null

MessageFormat

public MessageFormat(String pattern, Locale locale)
Создаёт MessageFormat для указанной локали и шаблона. Конструктор сначала устанавливает локаль, затем анализирует шаблон и создаёт список подформатов для элементов форматирования, содержащихся в нём. Шаблоны и их интерпретация указаны в описании класса.
Параметры:
pattern - шаблон для этого формата сообщений
locale - локаль для этого формата сообщений
Исключения:
IllegalArgumentException - если шаблон некорректен
pattern - если pattern является null
С:
1.4

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

setLocale

public void setLocale(Locale locale)
Устанавливает локаль, используемую при создании или сравнении подформатов. Это влияет на последующие вызовы
  • методов applyPattern и toPattern, если элементы форматирования указывают тип форматирования и, следовательно, подформаты создаются в методе applyPattern, а также
  • методов format и formatToCharacterIterator, если элементы форматирования не указывают тип форматирования и, следовательно, подформаты создаются в методах форматирования.
Уже созданные подформаты не затрагиваются.
Параметры:
locale - локаль, используемая при создании или сравнении подформатов

getLocale

public Locale getLocale()
Возвращает локаль, используемую при создании или сравнении подформатов.
Возвращает:
используемая локаль при создании или сравнении подформатов

applyPattern

public void applyPattern(String pattern)
Устанавливает шаблон, используемый этим форматом сообщений. Метод анализирует шаблон и создаёт список подформатов для элементов форматирования, содержащихся в нём. Шаблоны и их интерпретация указаны в описании класса.
Параметры:
pattern - шаблон для этого формата сообщений
Исключения:
IllegalArgumentException - если шаблон некорректен
NullPointerException - если pattern является null

toPattern

public String toPattern()
Возвращает шаблон, представляющий текущее состояние формата сообщений. Строка создаётся из внутренней информации и, следовательно, не обязательно равна ранее применённому шаблону.
Возвращает:
шаблон, представляющий текущее состояние формата сообщений

setFormatsByArgumentIndex

public void setFormatsByArgumentIndex(Format[] newFormats)
Устанавливает форматы, используемые для значений, переданных в методы format или возвращаемых методами parse. Индексы элементов в newFormats соответствуют индексам аргументов, используемым в строке шаблона, заданной ранее. Порядок форматов в newFormats таким образом соответствует порядку элементов в массиве arguments, переданном методам format, или массиву результатов, возвращаемому методами parse.

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

Параметры:
newFormats - новые форматы для использования
Исключения:
NullPointerException - если newFormats равно null
С:
1.4

setFormats

public void setFormats(Format[] newFormats)
Устанавливает форматы, используемые для элементов форматирования в строке шаблона, установленной ранее. Порядок форматов в newFormats соответствует порядку элементов форматирования в строке шаблона.

Если предоставлено больше форматов, чем нужно строке шаблона, оставшиеся игнорируются. Если предоставлено меньше форматов, чем нужно, то только первые newFormats.length формата заменяются.

Поскольку порядок элементов форматирования в строке шаблона часто меняется во время локализации, обычно лучше использовать метод setFormatsByArgumentIndex, который предполагает порядок форматов, соответствующий порядку элементов в массиве arguments передаваемом методам format или массиву результатов, возвращаемому методами parse.

Параметры:
newFormats - новые форматы для использования
Исключения:
NullPointerException - если newFormats равно null

setFormatByArgumentIndex

public void setFormatByArgumentIndex(int argumentIndex, Format newFormat)
Устанавливает формат, используемый для элементов форматирования в строке шаблона, установленной ранее, которые используют данный индекс аргумента. Индекс аргумента является частью определения элемента форматирования и представляет собой индекс в массиве arguments переданном методам format или массиву результатов, возвращаемому методами parse.

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

Параметры:
argumentIndex - индекс аргумента, для которого использовать новый формат
newFormat - новый формат для использования
С:
1.4

setFormat

public void setFormat(int formatElementIndex, Format newFormat)
Устанавливает формат, используемый для элемента форматирования с заданным индексом элемента форматирования в строке шаблона, установленной ранее. Индекс элемента форматирования - нулевое основание числа элемента форматирования, считая от начала строки шаблона.

Поскольку порядок элементов форматирования в строке шаблона часто меняется во время локализации, обычно лучше использовать метод setFormatByArgumentIndex, который обращается к элементам форматирования на основе указанного ими индекса аргумента.

Параметры:
formatElementIndex - индекс элемента форматирования в шаблоне
newFormat - формат для использования для указанного элемента форматирования
Исключения:
ArrayIndexOutOfBoundsException - если formatElementIndex равно или больше количества элементов форматирования в строке шаблона

getFormatsByArgumentIndex

public Format[] getFormatsByArgumentIndex()
Возвращает форматы, используемые для значений, переданных в методы format или возвращаемых методами parse. Индексы элементов в возвращаемом массиве соответствуют индексам аргументов, используемым в строке шаблона, заданной ранее. Порядок форматов в возвращаемом массиве таким образом соответствует порядку элементов в массиве arguments переданном методам format или массиву результатов, возвращаемому методами parse.

Если индекс аргумента используется для более чем одного элемента форматирования в строке шаблона, то формат, используемый для последнего такого элемента форматирования, возвращается в массиве. Если индекс аргумента не используется ни для какого элемента форматирования в строке шаблона, то в массив возвращается null.

Возвращает:
используемые форматы для аргументов в шаблоне
С:
1.4

getFormats

public Format[] getFormats()
Возвращает форматы, используемые для элементов форматирования в строке шаблона, установленной ранее. Порядок форматов в возвращаемом массиве соответствует порядку элементов форматирования в строке шаблона.

Поскольку порядок элементов форматирования в строке шаблона часто меняется во время локализации, обычно лучше использовать метод getFormatsByArgumentIndex, который предполагает порядок форматов, соответствующий порядку элементов в массиве arguments переданном методам format или массиву результатов, возвращаемому методами parse.

Возвращает:
форматы, используемые для элементов форматирования в шаблоне

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

public final StringBuffer format(Object[] arguments, StringBuffer result, FieldPosition pos)
Форматирует массив объектов и добавляет шаблон MessageFormat, заменяя элементы формата отформатированными объектами, в предоставленный StringBuffer.

Текст, заменяющий отдельные элементы формата, извлекается из текущего подформата элемента формата и элемента arguments в индексе аргумента элемента формата, как указано в первой совпадающей строке следующей таблицы. Аргумент считается недоступным, если arguments равен null или содержит меньше чем argumentIndex+1 элементов.

Примеры подформата, аргумента и отформатированного текста
Подформат Аргумент Отформатированный текст
любой недоступен "{" + argumentIndex + "}"
null "null"
instanceof ChoiceFormat любой subformat.format(argument).indexOf('{') >= 0 ?
(new MessageFormat(subformat.format(argument), getLocale())).format(argument) : subformat.format(argument)
!= null любой subformat.format(argument)
null instanceof Number NumberFormat.getInstance(getLocale()).format(argument)
instanceof Date DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()).format(argument)
instanceof String argument
любой argument.toString()

Если pos не равно null и относится к Field.ARGUMENT, будет возвращено расположение первой отформатированной строки.

Параметры:
arguments - массив объектов для форматирования и подстановки.
result - место для добавления текста.
pos - отслеживает позицию первого заменённого аргумента в строке вывода.
Возвращает:
буфер строк, переданный как result, с добавленным отформатированным текстом
Исключение:
IllegalArgumentException - если аргумент в массиве arguments не имеет типа, ожидаемого элементами формата, которые его используют.
NullPointerException - если result равно null

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

public static String format(String pattern, Object... arguments)
Создаёт MessageFormat с заданным шаблоном и использует его для форматирования заданных аргументов. Это эквивалентно
(new MessageFormat(pattern)).format(arguments, new StringBuffer(), null).toString()
Параметры:
pattern - строка шаблона
arguments - объекты для форматирования
Возвращает:
отформатированная строка
Исключение:
IllegalArgumentException - если шаблон неверный, или аргумент в массиве arguments не имеет типа, ожидаемого элементами формата, которые его используют.
NullPointerException - если pattern равно null

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

public final StringBuffer format(Object arguments, StringBuffer result, FieldPosition pos)
Форматирует массив объектов и добавляет шаблон MessageFormat, заменяя элементы формата отформатированными объектами, в предоставленный StringBuffer. Это эквивалентно
format((Object[]) arguments, result, pos)
Указано в:
format в классе Format
Параметры:
arguments - массив объектов для форматирования и подстановки.
result - место для добавления текста.
pos - отслеживает позицию первого заменённого аргумента в строке вывода.
Возвращает:
буфер строк, переданный как toAppendTo, с добавленным отформатированным текстом
Исключение:
IllegalArgumentException - если аргумент в массиве arguments не имеет типа, ожидаемого элементами формата, которые его используют.
NullPointerException - если result равно null

formatToCharacterIterator

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

Текст возвращённого AttributedCharacterIterator такой же, как бы возвращался

format(arguments, new StringBuffer(), null).toString()

Кроме того, AttributedCharacterIterator содержит как минимум атрибуты, указывающие, где текст был сгенерирован из аргумента в массиве arguments. Ключи этих атрибутов имеют тип MessageFormat.Field, их значения — объекты Integer, указывающие на индекс в массиве arguments аргумента, из которого был сгенерирован текст.

Атрибуты/значения из подлежащих Format экземпляров, которые использует MessageFormat, также будут помещены в результирующий AttributedCharacterIterator. Это позволяет не только найти, где аргумент размещён в результирующей строке, но и какие поля он, в свою очередь, содержит.

Переопределяет:
formatToCharacterIterator в классе Format
Параметры:
arguments - массив объектов для форматирования и подстановки.
Возвращает:
AttributedCharacterIterator, описывающий отформатированное значение.
Исключение:
NullPointerException - если arguments равно null.
IllegalArgumentException - если аргумент в массиве arguments не имеет типа, ожидаемого элементами формата, которые его используют.
С:
1.4

распарсить

public Object[] parse(String source, ParsePosition pos)
Парсит строку.

Ограничения: Парсинг может потерпеть неудачу по ряду причин. Например:

  • Если один из аргументов не встречается в шаблоне.
  • Если формат аргумента теряет информацию, например, в формате выбора, где большое количество форматов отображается как "много".
  • Пока не обрабатывает рекурсию (где подставленные строки содержат ссылки {n}).
  • Не всегда найдёт соответствие (или правильное соответствие), если часть парсинга неоднозначна. Например, если шаблон "{1},{2}" используется со строковыми аргументами {"a,b", "c"}, он отформатирует как "a,b,c". При парсинге результата он вернёт {"a", "b,c"}.
  • Если один аргумент парсится более одного раза в строке, то побеждает последний парсинг.
При неудачном парсинге используйте ParsePosition.getErrorIndex() для определения места в строке, где произошла ошибка парсинга. Возвращаемый индекс ошибки — начальный смещение подшаблонов, с которыми строка сравнивается. Например, если строка парсинга "AAA {0} BBB" сравнивается с шаблоном "AAD {0} BBB", индекс ошибки — 0. При ошибке вызов этого метода вернёт null. Если источник null, вернёт пустой массив.
Параметры:
source - строка для парсинга
pos - позиция парсинга
Возвращает:
массив распарсенных объектов
Исключение:
NullPointerException - если pos равно null для не-null строки source.

распарсить

public Object[] parse(String source) throws ParseException
Парсит текст с начала заданной строки для получения массива объектов. Метод может не использовать весь текст заданной строки.

См. метод parse(String, ParsePosition) для получения дополнительной информации о парсинге сообщений.

Параметры:
source - Строка, начало которой должно быть обработано.
Возвращает:
Массив объектов, распарсенных из строки.
Исключение:
ParseException - если начало заданной строки не может быть обработано.

parseObject

public Object parseObject(String source, ParsePosition pos)
Парсит текст из строки, чтобы получить массив объектов.

Метод пытается распарсить текст, начиная с индекса, заданного pos. Если парсинг успешен, то индекс pos обновляется до индекса после последнего использованного символа (парсинг не обязательно использует все символы до конца строки), и возвращается массив распарсенных объектов. Обновлённый pos может быть использован для указания начальной точки для следующего вызова этого метода. Если произошла ошибка, то индекс pos не изменяется, индекс ошибки pos устанавливается на индекс символа, где произошла ошибка, и возвращается null.

См. метод parse(String, ParsePosition) для получения дополнительной информации о парсинге сообщений.

Указано в:
parseObject в классе Format
Параметры:
source - Строка, часть которой должна быть обработана.
pos - Объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше.
Возвращает:
Массив распарсенных из строки объектов. В случае ошибки возвращает null.
Исключение:
NullPointerException - если pos равно null.

клонировать

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

equals

public boolean equals(Object obj)
Сравнение на равенство двух объектов формата сообщения
Overrides:
equals в классе Object
Parameters:
obj - ссылка на объект для сравнения.
Returns:
true если этот объект идентичен аргументу obj; false в противном случае.
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Генерирует код хэша для объекта формата сообщения.
Overrides:
hashCode в классе Object
Returns:
значение кода хэша для этого объекта.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2021, 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/17/docs/api/java.base/java/text/MessageFormat.html

Spec-Zone.ru

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