Класс 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)
Создать дескриптор, в котором имена и значения полей являются ключами и значениями заданной карты.
- Параметры:
-
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- если два дескриптора содержат одно и то же имя поля с разными соответствующими значениями. Массивы примитивных типов считаются одинаковыми, если они одного типа с одними и теми же элементами. Массивы объектов считаются одинаковыми, если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 - Возвращает:
- Массив строк полей в формате имяПоля=значениеПоля
Если значение поля не является строкой, то для него вызывается метод 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()
Возвращает дескриптор, равный этому дескриптору. Изменения в возвращённом дескрипторе не повлияют на этот дескриптор, и наоборот.
Этот метод возвращает объект, на котором он был вызван. Подкласс может переопределить его, чтобы вернуть другой объект, при условии соблюдения контракта.
- Specified by:
-
clonein interfaceDescriptor - Overrides:
-
clonein classObject - Returns:
- клонированную копию этого экземпляра.
- Throws:
-
RuntimeOperationsException- для некорректного значения для поля Имена или поля Значения. Если создание дескриптора завершается неудачей по любой причине, будет выброшено это исключение. - See Also:
setFields
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
RuntimeOperationsException, содержащее UnsupportedOperationException. В противном случае поведение такое же, как и для изменяемого дескриптора: либо выбрасывается исключение из-за некорректных параметров, либо нет никакого эффекта.- Specified by:
-
setFieldsin interfaceDescriptor - Parameters:
-
fieldNames- Массив строк имён полей. Массив и элементы массива не могут быть null. -
fieldValues- Массив объектов соответствующих значений полей. Массив не может быть null. Элементы массива могут быть null. - Throws:
-
RuntimeOperationsException- если изменение завершается неудачей по любой причине. Обернутое исключение -IllegalArgumentException, еслиfieldNamesилиfieldValuesравно null, или массивы имеют разную длину, или есть некорректное значение в одном из них. Обернутое исключение -UnsupportedOperationException, если дескриптор неизменяемый, и вызов изменит его содержимое. - See Also:
setField
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
RuntimeOperationsException, содержащее UnsupportedOperationException. В противном случае поведение такое же, как и для изменяемого дескриптора: либо выбрасывается исключение из-за некорректных параметров, либо нет никакого эффекта.- Specified by:
-
setFieldin interfaceDescriptor - Parameters:
-
fieldName- Имя поля, которое нужно установить. Не может быть null или пустым. -
fieldValue- Значение поля, которое нужно установить для имени поля. Может быть null, если это допустимое значение для поля. - Throws:
-
RuntimeOperationsException- если имя поля или значение поля некорректны (обернутое исключение -IllegalArgumentException); или если дескриптор неизменяемый (обернутое исключение -UnsupportedOperationException).
removeField
public final void removeField(String fieldName)
- Specified by:
-
removeFieldin interfaceDescriptor - Parameters:
-
fieldName- Строковое имя поля, которое нужно удалить. Если имя поля некорректно или поле не найдено, исключение не выбрасывается. - Throws:
-
RuntimeOperationsException- если поле с данным именем существует, и дескриптор неизменяемый. Обернутое исключение будетUnsupportedOperationException.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/ImmutableDescriptor.html