Класс 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.
Информация об использовании
Вот несколько примеров использования. В реальных интернационализированных программах шаблон формата сообщения и другие статические строки, конечно же, будут получены из файлов ресурсов. Другие параметры будут динамически определяться во время выполнения.
В первом примере используется статический метод 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, Сериализованная форма
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | MessageFormat.Field | Определяет константы, которые используются в качестве ключей атрибутов в |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MessageFormat(String pattern) | Создаёт MessageFormat для локаля по умолчанию |
MessageFormat(String pattern,
Locale locale) | Создаёт MessageFormat для указанного локэля и шаблона. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | applyPattern(String pattern) | Устанавливает шаблон, используемый этим форматом сообщений. |
Object | clone() | Создаёт и возвращает копию этого объекта. |
boolean | equals(Object obj) | Сравнение на равенство двух объектов формата сообщений |
StringBuffer | format(Object[] arguments,
StringBuffer result,
FieldPosition pos) | Форматирует массив объектов и добавляет шаблон |
StringBuffer | format(Object arguments,
StringBuffer result,
FieldPosition pos) | Форматирует массив объектов и добавляет шаблон |
static String | format(String pattern,
Object... arguments) | Создаёт MessageFormat с заданным шаблоном и использует его для форматирования заданных аргументов. |
AttributedCharacterIterator | formatToCharacterIterator(Object arguments) | Форматирует массив объектов и вставляет их в шаблон |
Format[] | getFormats() | Получает форматы, используемые для элементов форматирования в ранее заданной строке шаблона. |
Format[] | getFormatsByArgumentIndex() | Получает форматы, используемые для значений, переданных в методы |
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) | Устанавливает форматы для использования для значений, переданных в методы |
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- если шаблон некорректен -
NullPointerException- еслиpatternявляетсяnull - Since:
- 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.
- Возвращает:
- форматы, используемые для элементов формата в шаблоне
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, то расположение первой отформатированной строки будет возвращено.
- Параметры:
-
arguments- массив объектов, которые необходимо отформатировать и заменить. -
result- место, куда добавляется текст. -
pos- отслеживает положение первого заменённого аргумента в строке вывода. - Возвращает:
- буфер строк, переданный как
result, с добавленным отформатированным текстом - Исключения:
-
IllegalArgumentException- если аргумент в массивеargumentsне того типа, который ожидается элементом(ами) формата, использующим его. -
NullPointerException- еслиresultявляетсяnull
format
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
format
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
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для не-null строкиsource
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
public Object clone()
Создаёт и возвращает копию этого объекта.
equals
public boolean equals(Object obj)
Сравнение на равенство между двумя объектами формата сообщений.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- ссылка на объект для сравнения. - Возвращает:
-
trueесли этот объект такой же, как аргумент obj;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Генерирует хеш-код для объекта формата сообщения.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хеш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
© 1993, 2020, 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/11/docs/api/java.base/java/text/MessageFormat.html