Класс ImmutableDescriptor
- Все реализуемые интерфейсы:
Serializable, Cloneable, Descriptor
public class ImmutableDescriptor extends Object implements Descriptor
- С версии:
- 1.6
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final ImmutableDescriptor |
EMPTY_DESCRIPTOR |
Пустой дескриптор. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ImmutableDescriptor |
Создает дескриптор, содержащий указанные поля. |
ImmutableDescriptor |
Создает дескриптор, содержащий указанные поля и значения. |
ImmutableDescriptor |
Создает дескриптор, в котором именами и значениями полей являются ключи и значения указанной Map. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Descriptor |
clone() |
Возвращает дескриптор, равный этому дескриптору. |
boolean |
equals |
Сравнивает этот дескриптор с указанным объектом. |
final String[] |
getFieldNames() |
Возвращает все имена полей в дескрипторе. |
final String[] |
getFields() |
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк. |
final Object |
getFieldValue |
Возвращает значение для указанного имени поля или null, если для этого имени значение отсутствует. |
final Object[] |
getFieldValues |
Возвращает все значения полей в дескрипторе в виде массива объектов. |
int |
hashCode() |
Возвращает значение хеш-кода этого дескриптора. |
boolean |
isValid() |
Возвращает true, если все поля имеют допустимые значения с учетом их имен. |
final void |
removeField |
Удаляет поле из дескриптора. |
final void |
setField |
Эта операция не поддерживается, поскольку данный класс является неизменяемым. |
final void |
setFields |
Эта операция не поддерживается, поскольку данный класс является неизменяемым. |
static ImmutableDescriptor |
union |
Возвращает ImmutableDescriptor, содержимое которого представляет собой объединение указанных дескрипторов. |
Подробное описание полей
EMPTY_DESCRIPTOR
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
Подробное описание конструкторов
ImmutableDescriptor
public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
- Параметры:
-
fieldNames— имена полей -
fieldValues— значения полей - Исключения:
-
IllegalArgumentException— если один из массивов равен null, массивы имеют разные размеры, имя поля равно null или пусто либо одно и то же имя поля указано более одного раза.
ImmutableDescriptor
public ImmutableDescriptor(String... fields)
fieldName=fieldValue. Имя поля заканчивается на первом символе =; например, если строка равна a=b=c, то имя поля — a, а его значение — b=c.- Параметры:
-
fields— имена полей - Исключения:
-
IllegalArgumentException— если параметр равен null, имя поля пусто, одно и то же имя поля указано более одного раза или одна из строк не содержит символ=.
ImmutableDescriptor
public ImmutableDescriptor(Map<String,?> fields)
Создает дескриптор, в котором именами и значениями полей являются ключи и значения указанной Map.
- Параметры:
-
fields— имена и значения полей - Исключения:
-
IllegalArgumentException— если параметр равен null, имя поля равно null или пусто либо одно и то же имя поля указано более одного раза (это возможно, поскольку регистр символов в именах полей не учитывается).
Подробное описание методов
union
public static ImmutableDescriptor union(Descriptor... descriptors)
Возвращает ImmutableDescriptor, содержимое которого представляет собой объединение указанных дескрипторов. Каждое имя поля, встречающееся в любом из дескрипторов, будет присутствовать в результате со значением, которое оно имеет на момент вызова метода. Последующие изменения любого из дескрипторов не влияют на возвращаемый здесь ImmutableDescriptor.
В простейшем случае имеется только один дескриптор, и возвращаемый ImmutableDescriptor является копией его полей на момент вызова этого метода:
Descriptor d = something(); ImmutableDescriptor copy = ImmutableDescriptor.union(d);
- Параметры:
-
descriptors— дескрипторы для объединения. Любой из дескрипторов может быть равен null; в этом случае он пропускается. - Возвращает:
ImmutableDescriptor, представляющий собой объединение указанных дескрипторов. Возвращаемый объект может совпадать с одним из входных дескрипторов, если он является ImmutableDescriptor, содержащим все необходимые поля.- Исключения:
-
IllegalArgumentException— если два Descriptor содержат одно и то же имя поля с разными соответствующими значениями. Значения примитивных массивов считаются одинаковыми, если они имеют одинаковый тип и одинаковые элементы. Значения массивов объектов считаются одинаковыми, еслиArrays.deepEquals(Object[],Object[])возвращает true.
getFieldValue
public final Object getFieldValue(String fieldName)
Descriptor- Определен в:
-
getFieldValueв интерфейсеDescriptor - Параметры:
-
fieldName— имя поля. - Возвращает:
- соответствующее значение или null, если поле отсутствует.
getFields
public final String[] getFields()
Descriptor- Определен в:
-
getFieldsв интерфейсеDescriptor - Возвращает:
- Массив строк с полями в формате fieldName=fieldValue
Если значение поля не является строкой, для него вызывается метод toString(), а возвращенное значение, заключенное в круглые скобки, используется как значение поля в возвращаемом массиве. Если значение поля равно null, значение поля в возвращаемом массиве будет пустым. Если дескриптор пуст, будет возвращен пустой массив. - См. также:
getFieldValues
public final Object[] getFieldValues(String... fieldNames)
DescriptorfieldNames.- Определен в:
-
getFieldValuesв интерфейсеDescriptor - Параметры:
-
fieldNames— массив строк с именами полей, значения которых следует вернуть. Если массив пуст, будет возвращен пустой массив. Если массив равен null, будут возвращены все значения, как если бы параметром был массив, возвращаемый методомDescriptor.getFieldNames(). Если указанного в массиве имени поля не существует, в том числе если оно равно null или пустой строке, для соответствующего элемента возвращаемого массива будет возвращено null. - Возвращает:
- Массив объектов со значениями полей. Если список
fieldNamesпуст, будет возвращен пустой массив.
getFieldNames
public final String[] getFieldNames()
Descriptor- Определен в:
-
getFieldNamesв интерфейсеDescriptor - Возвращает:
- Массив строк с именами полей. Если дескриптор пуст, будет возвращен пустой массив.
equals
public boolean equals(Object o)
- Если одно значение равно null, то и другое должно быть равно null.
- Если одно значение является примитивным массивом, то другое должно быть примитивным массивом того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть массивом объектов, а
Arrays.deepEquals(Object[],Object[])должен возвращать true. - В противном случае
Object.equals(Object)должен возвращать true.
- Определен в:
-
equalsв интерфейсеDescriptor - Переопределяет:
-
equalsв классеObject - Параметры:
-
o— объект для сравнения. - Возвращает:
-
true, если объекты равны;falseв противном случае. - См. также:
hashCode
public int hashCode()
Возвращает значение хеш-кода этого дескриптора. Хеш-код вычисляется как сумма хеш-кодов всех полей дескриптора. Хеш-код поля с именем n и значением v равен n.toLowerCase().hashCode() ^ h. Здесь h — хеш-код v, вычисляемый следующим образом:
- Если
vравно null, тоhравно 0. - Если
vявляется примитивным массивом, тоhвычисляется с использованием соответствующей перегрузкиjava.util.Arrays.hashCode. - Если
vявляется массивом объектов, тоhвычисляется с помощьюArrays.deepHashCode(Object[]). - В противном случае
hравноv.hashCode().
- Определен в:
-
hashCodeв интерфейсеDescriptor - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Значение хеш-кода этого объекта.
- См. также:
isValid
public boolean isValid()
- Определен в:
-
isValidв интерфейсеDescriptor - Возвращает:
- true, если значения допустимы.
- Исключения:
-
RuntimeOperationsException— если проверка допустимости завершилась с ошибкой. Метод возвращает false, если дескриптор недопустим, но выбрасывает это исключение, если попытка определить допустимость завершается неудачей.
clone
public Descriptor clone()
Возвращает дескриптор, равный этому дескриптору. Изменения возвращенного дескриптора не влияют на этот дескриптор, и наоборот.
Этот метод возвращает объект, для которого он был вызван. Подкласс может переопределить его и возвращать другой объект, если при этом соблюдаются требования контракта.
- Определен в:
-
cloneв интерфейсеDescriptor - Переопределяет:
-
cloneв классеObject - Возвращает:
- Дескриптор, равный этому дескриптору.
- Исключения:
-
RuntimeOperationsException— при недопустимом значении для имен полей или значений полей. Если создание дескриптора завершается неудачей по какой-либо причине, будет выброшено это исключение. - См. также:
setFields
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
RuntimeOperationsException, обертывающее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо выбрасывается исключение из-за недопустимых параметров, либо операция не оказывает эффекта.- Определен в:
-
setFieldsв интерфейсеDescriptor - Параметры:
-
fieldNames— массив строк с именами полей. Массив и его элементы не могут быть равны null. -
fieldValues— массив объектов с соответствующими значениями полей. Массив не может быть равен null. Элементы массива могут быть равны null. - Исключения:
-
RuntimeOperationsException— если изменение не удается по какой-либо причине. Обернутое исключение —IllegalArgumentException, еслиfieldNamesилиfieldValuesравно null, массивы имеют разную длину или один из них содержит недопустимое значение. Обернутое исключение —UnsupportedOperationException, если дескриптор неизменяемый, а вызов изменил бы его содержимое. - См. также:
setField
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
RuntimeOperationsException, обертывающее UnsupportedOperationException. В противном случае поведение будет таким же, как и для изменяемого дескриптора: либо выбрасывается исключение из-за недопустимых параметров, либо операция не оказывает эффекта.- Определен в:
-
setFieldв интерфейсеDescriptor - Параметры:
-
fieldName— имя устанавливаемого поля. Не может быть равно null или пустой строке. -
fieldValue— значение, устанавливаемое для указанного имени поля. Может быть равно null, если это допустимое значение для данного поля. - Исключения:
-
RuntimeOperationsException— если имя поля или значение поля недопустимо (обернутое исключение —IllegalArgumentException); или если дескриптор неизменяемый (обернутое исключение —UnsupportedOperationException).
removeField
public final void removeField(String fieldName)
- Определен в:
-
removeFieldв интерфейсеDescriptor - Параметры:
-
fieldName— строковое имя удаляемого поля. Если имя поля недопустимо или поле не найдено, исключение не выбрасывается. - Исключения:
-
RuntimeOperationsException— если поле с указанным именем существует, а дескриптор неизменяемый. Обернутое исключение будет иметь типUnsupportedOperationException.
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/ImmutableDescriptor.html