Класс 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}", а не элемент формата. Сама одинарная кавычка должна быть представлена двойными одинарными кавычками '' в течение всей строки. Например, строка шаблона "'{''}'" интерпретируется как последовательность '{ (начало цитирования и левая фигурная скобка), '' (одинарная кавычка) и }' (правая фигурная скобка и конец цитирования), а не '{' и '}' (цитируемые левая и правая фигурные скобки): представляющие строку "{'}", а не "{}".
Подшаблон интерпретируется соответствующим подформатом, и применяются правила шаблона, зависящие от подформата. Например, строка шаблона "{1,number,$'#',##}" (Подшаблон с подчеркиванием) создаст формат числа с процитированным знаком фунта, с результатом, таким как: "$#31,45". Обратитесь к документации каждого класса Format для получения подробной информации.
Любая несовпадающая кавычка обрабатывается как закрытая в конце данного шаблона. Например, строка шаблона "'{0}" обрабатывается как шаблон "'{0}'".
Любые фигурные скобки внутри нецитируемого шаблона должны быть сбалансированы. Например, "ab {0} de" и "ab '}' de" являются допустимыми шаблонами, но "ab {0'}' de", "ab } de" и "''{''" не являются.
- Предупреждение:
- Правила использования кавычек в шаблонах формата сообщений, к сожалению, оказались несколько запутанными. В частности, не всегда очевидно локализаторам, нужно ли удваивать одинарные кавычки или нет. Убедитесь, что вы информируете локализаторов о правилах и сообщите им (например, с помощью комментариев в исходных файлах ресурсов), какие строки будут обрабатываться
MessageFormat. Обратите внимание, что локализаторам может потребоваться использовать одинарные кавычки в переведенных строках, где оригинальная версия их не имеет.
Значение ИндексАргумента — это целое неотрицательное число, записанное с помощью цифр '0' по '9', и оно представляет собой индекс в массиве arguments , переданном методам format или массив результата, возвращаемый методами parse.
Значения ТипФормата и СтильФормата используются для создания экземпляра Format для элемента формата. В следующей таблице показано, как значения сопоставляются с экземплярами Format. Комбинации, не представленные в таблице, недопустимы. Подшаблон должен быть допустимой строкой шаблона для класса Format используемого.
| ТипФормата | СтильФормата | СозданныйПодформат |
|---|---|---|
| (нет) | (нет) |
null |
number |
(нет) |
NumberFormat.getInstance(getLocale()) |
integer |
NumberFormat.getIntegerInstance(getLocale()) |
|
currency |
NumberFormat.getCurrencyInstance(getLocale()) |
|
percent |
NumberFormat.getPercentInstance(getLocale()) |
|
| Подшаблон |
new DecimalFormat(subformatPattern, DecimalFormatSymbols.getInstance(getLocale())) |
|
date |
(нет) |
DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale()) |
short |
DateFormat.getDateInstance(DateFormat.SHORT, getLocale()) |
Информация об использовании
Вот несколько примеров использования. В реальных международных программах шаблон формата сообщений и другие статические строки, конечно, будут получены из ресурсов пакетов. Другие параметры будут динамически определены во время выполнения.
Первый пример использует статический метод 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")} Синхронизация
Форматы сообщений не синхронизированы. Рекомендуется создавать отдельные экземпляры форматов для каждого потока. Если несколько потоков обращаются к формату одновременно, необходимо обеспечить внешнюю синхронизацию.
- См. также:
-
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- если шаблон некорректен
MessageFormat
public MessageFormat(String pattern,
Locale locale) Создаёт MessageFormat для указанной локали и шаблона. Конструктор сначала задаёт локаль, затем анализирует шаблон и создаёт список подформатов для элементов форматирования, содержащихся в нём. Шаблоны и их интерпретация описаны в описании класса.
- Параметры:
-
pattern- шаблон для этого формата сообщений -
locale- локаль для этого формата сообщений - Исключения:
-
IllegalArgumentException- если шаблон некорректен - С:
- 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- если шаблон некорректен
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) |
null |
instanceof Date |
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()).format(argument) |
null |
instanceof String |
argument |
null |
любой |
argument.toString() |
Если pos не null и относится к Field.ARGUMENT, то расположение первой отформатированной строки будет возвращено.
- Параметры:
-
arguments- массив объектов для форматирования и подстановки. -
result- место для добавления текста. -
pos- При вводе: поле выравнивания, если необходимо. При выводе: смещения поля выравнивания. - Возвращает:
- буфер строки, переданный как
result, с добавленным отформатированным текстом - Исключение:
-
IllegalArgumentException- если аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) форматирования, использующими его.
format
public static String format(String pattern,
Object... arguments) Создаёт MessageFormat с заданным шаблоном и использует его для форматирования заданных аргументов. Это эквивалентно
(new MessageFormat(pattern)).format(arguments, new StringBuffer(), null).toString()
- Параметры:
-
pattern- строка шаблона -
arguments- объект(ы) для форматирования - Возвращает:
- отформатированная строка
- Исключение:
-
IllegalArgumentException- если шаблон некорректен, или если аргумент в массивеargumentsне соответствует типу, ожидаемому элементом(ами) форматирования, использующими его.
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не соответствует типу, ожидаемому элементом(ами) форматирования, использующими его.
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- позиция разбора - Возвращает:
- массив разбора объектов
parse
public Object[] parse(String source)
throws ParseException Разбирает текст с начала заданной строки, чтобы получить массив объектов. Метод может не использовать весь текст заданной строки.
См. метод parse(String, ParsePosition) для получения более подробной информации о разборе сообщений.
- Параметры:
-
source- Строка, начало которой должно быть разобрано. - Возвращает:
- массив
Objectобъектов, разобранных из строки. - Исключение:
-
ParseException- если начало указанной строки не может быть разобрано.
parseObject
public Object parseObject(String source,
ParsePosition pos) Разбирает текст из строки, чтобы получить массив объектов.
Метод пытается разобрать текст, начиная с индекса, заданного pos. Если разбор проходит успешно, то индекс pos обновляется до индекса после последнего используемого символа (разбор не обязательно использует все символы до конца строки), и возвращается разобранный массив объектов. Обновлённый pos может использоваться для указания точки входа для следующего вызова этого метода. Если произошла ошибка, индекс pos не изменяется, индекс ошибки pos устанавливается в индекс символа, где произошла ошибка, и возвращается null.
См. метод parse(String, ParsePosition) для получения более подробной информации о разборе сообщений.
- Определено в:
-
parseObjectв классеFormat - Параметры:
-
source- Строка, часть которой должна быть разобрана. -
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.