Класс 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.Правила экранирования в шаблонах
Внутри 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, обрабатывается особым образом: вхождения символа '{' используются для обозначения подформатов и вызывают рекурсивную обработку. Если в шаблонеChoiceFormatопределёнFormatElement, он будет форматироваться только в соответствии с шаблоном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)
FormatTypedtf_date с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)
FormatTypeISO_LOCAL_DATE,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")}Синхронизация
Форматы сообщений не являются синхронизированными. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если к одному формату одновременно обращаются несколько потоков, синхронизацию необходимо выполнять извне.
- Начиная с версии:
- 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, для отладки. |
Методы, объявленные в классе Format
format, parseObject | Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
format |
Форматирует объект, создавая строку. |
Object |
parseObject |
Разбирает текст с начала указанной строки, чтобы создать объект. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API будет удален в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
MessageFormat
public MessageFormat(String pattern)
FORMAT и указанного шаблона. Сначала конструктор задает локаль, затем анализирует шаблон и создает список подформатов для содержащихся в нем элементов формата. Шаблоны и их интерпретация описаны в описании класса.- Параметры:
-
pattern— шаблон для этого формата сообщения - Исключения:
-
IllegalArgumentException— если шаблон недопустим -
NullPointerException— еслиpatternравноnull
MessageFormat
public MessageFormat(String pattern, Locale locale)
- Требования к реализации:
- Реализация по умолчанию выбрасывает
NullPointerException, еслиlocaleравноnullлибо во время создания объектаMessageFormat, либо позже, когда экземплярMessageFormatвызываетformat()с нулевой локалью, а реализация использует подформат, зависящий от локали. - Параметры:
-
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.
- Возвращает:
- форматы, используемые для аргументов в шаблоне
- С:
- 1.4
getFormats
public Format[] getFormats()
Поскольку порядок элементов формата в строке шаблона часто меняется при локализации, обычно лучше использовать метод getFormatsByArgumentIndex, который предполагает порядок форматов, соответствующий порядку элементов в массиве arguments, передаваемом методам format, или массиве результатов, возвращаемом методами parse.
- Возвращает:
- форматы, используемые для элементов формата в шаблоне
format
public final StringBuffer format(Object[] arguments, StringBuffer result, FieldPosition pos)
StringBuffer шаблон MessageFormat, заменяя элементы формата отформатированными объектами. Текст, подставляемый вместо отдельных элементов формата, определяется текущим подформатом элемента формата и элементом arguments с индексом аргумента этого элемента формата, как указано в первой подходящей строке следующей таблицы. Аргумент считается недоступным, если arguments равно null или содержит меньше чем аргументIndex+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, будет возвращено расположение первой отформатированной строки.
- Параметры:
-
arguments— массив объектов для форматирования и подстановки. -
result— место добавления текста. -
pos— отслеживает позицию первого замененного аргумента в выходной строке. - Возвращает:
- переданный строковый буфер
resultс добавленным отформатированным текстом - Исключения:
-
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()
- Параметры:
-
pattern— строка шаблона -
arguments— объект или объекты для форматирования - Возвращает:
- отформатированная строка
- Исключения:
-
IllegalArgumentException— если шаблон недопустим или аргумент в массивеargumentsимеет тип, не ожидаемый элементом (элементами) формата, в котором он используется. -
NullPointerException— еслиpatternравноnull
format
public final StringBuffer format(Object arguments, StringBuffer result, FieldPosition pos)
StringBuffer шаблон MessageFormat, заменяя элементы формата отформатированными объектами. Эквивалентно format((Object[]) arguments, result, pos)
- Определено в:
-
formatв классеFormat - Параметры:
-
arguments— массив объектов для форматирования и подстановки. -
result— место добавления текста. -
pos— отслеживает позицию первого замененного аргумента в выходной строке. - Возвращает:
- переданный строковый буфер
toAppendToс добавленным отформатированным текстом - Исключения:
-
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. Это позволяет не только определить, где размещен аргумент в итоговой строке, но и узнать, какие поля он, в свою очередь, содержит.
- Переопределяет:
-
formatToCharacterIteratorв классеFormat - Параметры:
-
arguments— массив объектов для форматирования и подстановки. - Возвращает:
- AttributedCharacterIterator, описывающий отформатированное значение.
- Исключения:
-
NullPointerException— еслиargumentsравно null. -
IllegalArgumentException— если аргумент в массивеargumentsимеет тип, не ожидаемый элементом (элементами) формата, в котором он используется. - С:
- 1.4
parse
public Object[] parse(String source, ParsePosition pos)
Предупреждения: разбор может завершиться неудачей при различных обстоятельствах. Например:
- Если один из аргументов отсутствует в шаблоне.
- Если форматирование аргумента приводит к потере информации, например в случае формата выбора, при котором большое число форматируется как «много».
- Рекурсия пока не поддерживается (когда подставленные строки содержат ссылки вида {n}).
- Совпадение (или правильное совпадение) обнаруживается не всегда, если часть разбираемой строки неоднозначна. Например, если шаблон "{1},{2}" используется со строковыми аргументами {"a,b", "c"}, результатом форматирования будет "a,b,c". При разборе результата будет возвращено {"a", "b,c"}.
- Если один аргумент разбирается в строке несколько раз, используется результат последнего разбора.
- Параметры:
-
source— строка для разбора -
pos— позиция разбора - Возвращает:
- массив разобранных объектов
- Исключения:
-
NullPointerException— еслиposравноnullдля строкиsource, не равной null.
parse
public Object[] parse(String source) throws ParseException
Дополнительные сведения о разборе сообщений см. в методе parse(String, ParsePosition).
- Параметры:
-
source—String, начало которого следует разобрать. - Возвращает:
- массив
Object, разобранный из строки. - Исключения:
-
ParseException— если начало указанной строки не удается разобрать.
parseObject
public Object parseObject(String source, ParsePosition pos)
Метод пытается разобрать текст, начиная с индекса, заданного в pos. При успешном разборе индекс pos обновляется до индекса после последнего использованного символа (разбор необязательно использует все символы до конца строки), после чего возвращается разобранный массив объектов. Обновленный pos можно использовать как начальную точку для следующего вызова этого метода. При возникновении ошибки индекс pos не изменяется, индекс ошибки pos устанавливается равным индексу символа, на котором произошла ошибка, и возвращается null.
Дополнительные сведения о разборе сообщений см. в методе parse(String, ParsePosition).
- Определено в:
-
parseObjectв классеFormat - Параметры:
-
source—String, часть которого следует разобрать. -
pos— объектParsePositionс индексом и индексом ошибки, как описано выше. - Возвращает:
- массив
Object, разобранный из строки. В случае ошибки возвращает null. - Исключения:
-
NullPointerException— еслиposравно null.
clone
equals
public boolean equals(Object obj)
MessageFormat на равенство. Возвращает true, если объект также является MessageFormat и оба формата форматируют любое значение одинаково.- Переопределяет:
-
equalsв классеObject - Требования к реализации:
- Этот метод проверяет равенство, определяя идентичность класса на основе
getClass(), а неinstanceof. Поэтому в методах equals подклассов ни один экземпляр этого класса не должен считаться равным экземпляру подкласса. - Параметры:
-
obj— объект для сравнения на равенство - Возвращает:
-
true, если указанный объект равен этомуMessageFormat - См. также:
hashCode
public int hashCode()
MessageFormat.- Переопределяет:
-
hashCodeв классеObject - Требования к реализации:
- Этот метод вычисляет значение хеш-кода, используя значение, возвращаемое методом
toPattern(). - Возвращает:
- значение хеш-кода для этого
MessageFormat - См. также:
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.