Класс 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:
number
dtf_date
dtf_time
dtf_datetime
pre-defined DateTimeFormatter(s)
date
time
choice
list
FormatStyle:
short
medium
long
full
integer
currency
percent
compact_short
compact_long
or
unit
SubformatPattern
Значение ArgumentIndex — это целое неотрицательное число, записанное с помощью цифр '0' по '9', и представляет собой индекс в массиве arguments, переданном методам format или массиве результатов, возвращаемом методами parse.
Любой конструктор или метод, принимающий строковый параметр шаблона, выбросит исключение IllegalArgumentException, если шаблон содержит значение ArgumentIndex, которое равно или превышает предел реализации.
Значения FormatType и FormatStyle используются для создания экземпляра Format для элемента форматирования. В следующей таблице показано, как значения сопоставляются с экземплярами Format. Эти значения нечувствительны к регистру при передаче в applyPattern(String). Комбинации, не показанные в таблице, являются недопустимыми. SubformatPattern должен быть допустимой строкой шаблона для подкласса Format.
- Примечание о реализации:
- В эталонной реализации предел
ArgumentIndexравен 10 000.FormatType FormatStyle Созданный Subformat
shortDateFormat.getTimeInstance(DateFormat.SHORT, getLocale())mediumDateFormat.getTimeInstance(DateFormat.MEDIUM, getLocale())longDateFormat.getTimeInstance(DateFormat.LONG, getLocale())fullDateFormat.getTimeInstance(DateFormat.FULL, getLocale())SubformatPattern newSimpleDateFormat(subformatPattern, getLocale())choiceSubformatPattern newChoiceFormat(subformatPattern)list(none) ListFormat.getInstance(getLocale(),ListFormat.Type.STANDARD,ListFormat.Style.FULL)orListFormat.getInstance(getLocale(),ListFormat.Type.OR,ListFormat.Style.FULL)unitListFormat.getInstance(getLocale(),ListFormat.Type.UNIT,ListFormat.Style.FULL}Правила цитирования в шаблонах
Внутри String, пара одинарных кавычек может использоваться для цитирования произвольных символов, кроме одинарных кавычек. Например, строка шаблона
"'{0}'"представляет строку"{0}", а не FormatElement. Сам одинарный апостроф должен быть представлен удвоенными одинарными апострофами''в пределах String. Например, строка шаблона"'{''}'"интерпретируется как последовательность'{(начало цитирования и левая фигурная скобка),''(одинарный апостроф) и}'(правая фигурная скобка и конец цитирования), а не'{'и'}'(цитируемые левая и правая фигурные скобки): представляющие строку"{'}", а не"{}".SubformatPattern интерпретируется соответствующим подформатом, и применяются правила шаблонов, зависящие от подформата. Например, строка шаблона
"{1,number,$'#',##}"(SubformatPattern с подчеркиванием) создаст числовой формат с цитированным знаком фунта, с результатом, таким как:"$#31,45". Обратитесь к документации каждого подклассаFormatдля получения подробностей.Любая несовпавшая кавычка обрабатывается как закрытая в конце данного шаблона. Например, строка шаблона
"'{0}"обрабатывается как шаблон"'{0}'".Все фигурные скобки в нецитируемом шаблоне должны быть сбалансированы. Например,
"ab {0} de"и"ab '}' de"являются допустимыми шаблонами, но"ab {0'}' de","ab } de"и"''{''"— нет.- Предупреждение:
- Правила использования кавычек в шаблонах формата сообщений, к сожалению, оказались несколько запутанными. В частности, локализующим не всегда очевидно, нужно ли удваивать одинарные кавычки. Убедитесь, что вы информируете локализующих о правилах и указываете (например, с помощью комментариев в исходных файлах ресурсов), какие строки будут обрабатываться
MessageFormat. Обратите внимание, что локализующим может потребоваться использовать одинарные кавычки в переведённых строках там, где исходная версия их не имеет.
Информация об использовании
Следующий пример демонстрирует общее использование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 GregorianCalendar(2053, Calendar.JULY, 3, 12, 30).getTime(), event);resultвозвращает следующее:At 12:30:00 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
Для более сложных шаблонов,
ChoiceFormatможет быть использован сMessageFormat, чтобы создать точные формы для единственного и множественного числа:MessageFormat msgFmt = new MessageFormat("The disk \"{0}\" contains {1,choice,0#no files|1#one file|1< {1,number,integer} files}."); Object[] args = {"MyDisk", fileCount}; String result = msgFmt.format(args);resultс различными значениями дляfileCount, возвращает следующее:The disk "MyDisk" contains no files. The disk "MyDisk" contains one file. The disk "MyDisk" contains 1,273 files.
Примечания: Как видно из предыдущего фрагмента, строка, сгенерированная
ChoiceFormatвMessageFormat, обрабатывается как специальная; вхождения '{' используются для указания подформатов и вызывают рекурсию. ЕслиFormatElementопределена в шаблонеChoiceFormat, она будет отформатирована только в соответствии с шаблонамиFormatTypeиFormatStyle. Сопутствующие подформаты верхнего уровняMessageFormatне будут применяться кFormatElement, определённому в шаблонеChoiceFormat. Если вы создаёте какMessageFormat, так иChoiceFormatпрограммно (вместо использования строковых шаблонов), будьте осторожны, чтобы не создать формат, который вызывает рекурсию на себя, что приведёт к бесконечной петле.Форматирование даты и времени
MessageFormat предоставляет шаблоны, поддерживающие форматировщики даты/времени в пакетахjava.time.formatиjava.text. Рассмотрим следующие три примера с датой 16.11.2023:1) дата
FormatTypeс полнымFormatStyle,Object[] arg = {new GregorianCalendar(2023, Calendar.NOVEMBER, 16).getTime()}; var fmt = new MessageFormat("The date was {0,date,full}"); fmt.format(arg); // returns "The date was Thursday, November 16, 2023"2) dtf_дата
FormatTypeс полнымFormatStyle,Object[] arg = {LocalDate.of(2023, 11, 16)}; var fmt = new MessageFormat("The date was {0,dtf_date,full}"); fmt.format(arg); // returns "The date was Thursday, November 16, 2023"3) ISO_LOCAL_DATE
FormatType,Object[] arg = {LocalDate.of(2023, 11, 16)}; var fmt = new MessageFormat("The date was {0,ISO_LOCAL_DATE}"); fmt.format(arg); // returns "The date was 2023-11-16"Разбор
Когда один аргумент анализируется более одного раза в строке, последняя совпавшая часть будет конечным результатом разбора. Например,
MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}"); Object[] objs = {Double.valueOf(3.1415)}; String result = mf.format( objs ); // result now equals "3.14, 3.1" objs = mf.parse(result, new ParsePosition(0)); // objs now equals {Double.valueOf(3.1)}Аналогично, разбор с объектом
MessageFormat, использующим шаблоны, содержащие несколько вхождений одного и того же аргумента, вернёт последнюю совпавшую часть. Например,MessageFormat mf = new MessageFormat("{0}, {0}, {0}"); String forParsing = "x, y, z"; Object[] objs = mf.parse(forParsing, new ParsePosition(0)); // objs now equals {new String("z")}Синхронизация
Форматы сообщений не синхронизированы. Рекомендуется создавать отдельные экземпляры форматов для каждого потока. Если к формату обращаются несколько потоков одновременно, необходимо обеспечить внешнюю синхронизацию.
- Since:
- 1.1
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
MessageFormat.Field |
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом MessageFormat.formatToCharacterIterator. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MessageFormat |
Создаёт MessageFormat для локали по умолчанию FORMAT и указанного шаблона. |
MessageFormat |
Создаёт MessageFormat для указанной локали и шаблона. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
applyPattern |
Устанавливает шаблон, используемый этим форматом сообщений. |
Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Сравнивает указанный объект с этим MessageFormat на равенство. |
final StringBuffer |
format |
Форматирует массив объектов и добавляет шаблон MessageFormat, заменяя элементы формата отформатированными объектами, в предоставленный StringBuffer. |
final StringBuffer |
format |
Форматирует массив объектов и добавляет шаблон MessageFormat, заменяя элементы формата отформатированными объектами, в предоставленный StringBuffer. |
static String |
format |
Создаёт MessageFormat с заданным шаблоном и использует его для форматирования заданных аргументов. |
AttributedCharacterIterator |
formatToCharacterIterator |
Форматирует массив объектов и вставляет их в шаблон MessageFormat, производя AttributedCharacterIterator. |
Format[] |
getFormats() |
Получает форматы, используемые для элементов формата в ранее заданной строке шаблона. |
Format[] |
getFormatsByArgumentIndex() |
Получает форматы, используемые для значений, переданных в методы format или возвращаемых методами parse. |
Locale |
getLocale() |
Получает локаль, используемую при создании или сравнении подформатов. |
int |
hashCode() |
Возвращает значение хэш-кода для этого MessageFormat. |
Object[] |
parse |
Разбирает текст с начала заданной строки для получения массива объектов. |
Object[] |
parse |
Разбирает строку. |
Object |
parseObject |
Разбирает текст из строки для получения массива объектов. |
void |
setFormat |
Устанавливает формат для использования для элемента формата с заданным индексом элемента формата в ранее заданной строке шаблона. |
void |
setFormatByArgumentIndex |
Устанавливает формат для использования для элементов формата в ранее заданной строке шаблона, использующих указанный индекс аргумента. |
void |
setFormats |
Устанавливает форматы для использования для элементов формата в ранее заданной строке шаблона. |
void |
setFormatsByArgumentIndex |
Устанавливает форматы для использования для значений, переданных в методы format или возвращаемых методами parse. |
void |
setLocale |
Устанавливает локаль, которая будет использоваться при создании или сравнении подформатов. |
String |
toPattern() |
Возвращает строку-шаблон, соответствующую patterns section, которая представляет текущее состояние этого MessageFormat. |
String |
toString() |
Возвращает строку, идентифицирующую этот MessageFormat, для отладки. |
Методы, объявленные в классе java.text.Format
format, parseObject
Подробное описание конструкторов
MessageFormat
public MessageFormat(String pattern)
FORMAT и указанного шаблона. Конструктор сначала устанавливает локаль, затем анализирует шаблон и создаёт список подформатов для элементов форматирования, содержащихся в нём. Шаблоны и их интерпретация указаны в описании класса.- Параметры:
-
pattern- шаблон для этого формата сообщений - Исключения:
-
IllegalArgumentException- если шаблон некорректен -
NullPointerException- еслиpatternявляетсяnull
MessageFormat
public MessageFormat(String pattern, Locale locale)
- Требования к реализации:
- Реализация по умолчанию выбрасывает
NullPointerException, еслиlocaleявляетсяnull, либо во время создания объектаMessageFormat, либо позднее, когдаformat()вызывается экземпляромMessageFormatс нулевой локалью, и реализация использует локально-зависимый подформат. - Параметры:
-
pattern- шаблон для этого формата сообщений -
locale- локаль для этого формата сообщений - Исключения:
-
IllegalArgumentException- если шаблон некорректен -
NullPointerException- еслиpatternявляетсяnullилиlocaleявляется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()
patterns section, который представляет текущее состояние этого MessageFormat. Строка строится из внутренней информации и поэтому не обязательно равна ранее применённому шаблону. Порядок соответствия FormatStyle не гарантируется. То есть, созданный
FormatStyle может не эквивалентен соответствующему стилю, в случае, если несколько стилей эквивалентны.- Требования к реализации:
- Реализация в
MessageFormatвозвращает строку, которая, при передаче в конструкторMessageFormat()илиapplyPattern(), создаёт экземпляр, семантически эквивалентный этому экземпляру. Если подформат не может быть преобразован в строковый шаблон,FormatTypeиFormatStyleбудут опущены изFormatElement. - Возвращает:
- строковый шаблон, соответствующий
patterns section, который представляет текущее состояние этогоMessageFormat
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.
- Returns:
- форматы, используемые для аргументов в шаблоне
- Since:
- 1.4
getFormats
public Format[] getFormats()
Поскольку порядок элементов формата в строке шаблона часто меняется при локализации, обычно лучше использовать метод getFormatsByArgumentIndex, который предполагает порядок форматов, соответствующий порядку элементов в массиве arguments, переданном методам format, или массиву результатов, возвращаемому методами parse.
- Returns:
- форматы, используемые для элементов формата в шаблоне
format
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 ? |
!= 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, то будет возвращено местоположение первой отформатированной строки.
- Parameters:
-
arguments- массив объектов, которые необходимо отформатировать и заменить. -
result- место, куда добавляется текст. -
pos- отслеживает позицию первого заменённого аргумента в строке вывода. - Returns:
- переданный буфер строки
resultс добавленным отформатированным текстом - Throws:
-
IllegalArgumentException- если аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) формата, использующим его. -
NullPointerException- еслиresultравноnullили если экземплярMessageFormat, вызывающий этот метод, имеет установленный язык null, а реализация использует подформат, зависящий от языка.
format
public static String format(String pattern, Object... arguments)
(new MessageFormat(pattern)).format(arguments, new StringBuffer(), null).toString()
- Parameters:
-
pattern- строка шаблона -
arguments- объект(ы) для форматирования - Returns:
- отформатированная строка
- Throws:
-
IllegalArgumentException- если шаблон некорректен или аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) формата, использующим его. -
NullPointerException- еслиpatternравноnull
format
public final StringBuffer format(Object arguments, StringBuffer result, FieldPosition pos)
MessageFormat, с элементами формата, заменёнными отформатированными объектами, в предоставленный буфер StringBuffer. Это эквивалентно format((Object[]) arguments, result, pos)
- Specified by:
-
formatв классеFormat - Parameters:
-
arguments- массив объектов, которые необходимо отформатировать и заменить. -
result- место, куда добавляется текст. -
pos- отслеживает позицию первого заменённого аргумента в строке вывода. - Returns:
- переданный буфер строки
toAppendToс добавленным отформатированным текстом - Throws:
-
IllegalArgumentException- если аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) формата, использующим его. -
NullPointerException- еслиresultравноnullили если экземплярMessageFormat, вызывающий этот метод, имеет установленный язык 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. Это позволяет не только найти место расположения аргумента в результирующей строке, но и какие поля он содержит в свою очередь.
- Overrides:
-
formatToCharacterIteratorв классеFormat - Parameters:
-
arguments- массив объектов, которые необходимо отформатировать и заменить. - Returns:
- AttributedCharacterIterator, описывающий отформатированное значение.
- Throws:
-
NullPointerException- еслиargumentsравно null. -
IllegalArgumentException- если аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) формата, использующим его. - Since:
- 1.4
parse
public Object[] parse(String source, ParsePosition pos)
Ограничения: Парсинг может завершиться неудачей в ряде случаев. Например:
- Если один из аргументов не встречается в шаблоне.
- Если формат аргумента теряет информацию, например, в формате выбора, где большое количество форматов отображается как «много».
- Ещё не поддерживает рекурсию (где подставляемые строки содержат ссылки {n}).
- Не всегда найдёт совпадение (или правильное совпадение), если какая-то часть парсинга неоднозначна. Например, если используется шаблон "{1},{2}" со строковыми аргументами {"a,b", "c"}, он будет отформатирован как "a,b,c". При парсинге результата, он вернёт {"a", "b,c"}.
- Если один аргумент парсится более одного раза в строке, то побеждает более поздний парсинг.
- Parameters:
-
source- строка для парсинга -
pos- позиция парсинга - Returns:
- массив распарсенных объектов
- Throws:
-
NullPointerException- еслиposравноnullдля непустой строкиsource.
parse
public Object[] parse(String source) throws ParseException
См. метод parse(String, ParsePosition) для получения дополнительной информации о парсинге сообщений.
- Parameters:
-
source- AString, начало которой должно быть обработано. - Returns:
- Массив
Object, распарсенный из строки. - Throws:
-
ParseException- если начало указанной строки не может быть обработано.
parseObject
public Object parseObject(String source, ParsePosition pos)
Метод пытается распарсить текст, начиная с индекса, заданного в pos. Если парсинг успешен, индекс pos обновляется до индекса после последнего использованного символа (парсинг не обязательно использует все символы до конца строки), и возвращается распарсенный массив объектов. Обновлённый pos может использоваться для указания точки начала для следующего вызова этого метода. Если произошла ошибка, индекс pos не изменяется, индекс ошибки pos устанавливается в индекс символа, где произошла ошибка, и возвращается null.
См. метод parse(String, ParsePosition) для получения дополнительной информации о парсинге сообщений.
- Specified by:
-
parseObjectin classFormat - Parameters:
-
source- AString, часть которой должна быть распарсена. -
pos- ОбъектParsePositionс информацией об индексе и индексе ошибки, как описано выше. - Returns:
- Массив
Object, распарсенный из строки. В случае ошибки возвращает null. - Throws:
-
NullPointerException- еслиposравно null.
clone
equals
public boolean equals(Object obj)
MessageFormat на равенство. Возвращает true, если объект также является MessageFormat и оба формата отформатируют любое значение одинаково.- Overrides:
-
equalsin classObject - Implementation Requirements:
- Этот метод выполняет проверку на равенство с понятием идентичности класса, основанной на
getClass(), а не наinstanceof. Поэтому в методах equals в подклассах ни один экземпляр этого класса не должен считаться равным экземпляру подкласса. - Parameters:
-
obj- объект для сравнения на равенство - Returns:
-
true, если указанный объект равен этомуMessageFormat - See Also:
hashCode
public int hashCode()
MessageFormat.- Overrides:
-
hashCodein classObject - Implementation Requirements:
- Этот метод вычисляет значение хэш-кода, используя значение, возвращаемое
toPattern(). - Returns:
- значение хэш-кода для этого
MessageFormat - See Also:
toString
© 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/MessageFormat.html