Класс ImmutableDescriptor
- java.lang.Object
-
- javax.management.ImmutableDescriptor
- Все реализуемые интерфейсы:
-
Serializable,Cloneable,Descriptor
public class ImmutableDescriptor extends Object implements Descriptor
Неизменяемый дескриптор.
- С момента:
- 1.6
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static ImmutableDescriptor | EMPTY_DESCRIPTOR | Пустой дескриптор. |
Конструкторы
| Конструктор | Описание |
|---|---|
ImmutableDescriptor(String... fields) | Создать дескриптор, содержащий указанные поля. |
ImmutableDescriptor(String[] fieldNames,
Object[] fieldValues) | Создать дескриптор, содержащий указанные поля и значения. |
ImmutableDescriptor(Map<String,?> fields) | Создать дескриптор, где имена и значения полей являются ключами и значениями заданного Map. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Descriptor | clone() | Возвращает дескриптор, равный этому дескриптору. |
boolean | equals(Object o) | Сравнивает этот дескриптор с заданным объектом. |
int | hashCode() | Возвращает значение хэш-кода для этого дескриптора. |
boolean | isValid() | Возвращает true, если все поля имеют допустимые значения, учитывая их имена. |
void | removeField(String fieldName) | Удаляет поле из дескриптора. |
void | setField(String fieldName,
Object fieldValue) | Данная операция не поддерживается, поскольку этот класс неизменяемый. |
void | setFields(String[] fieldNames,
Object[] fieldValues) | Данная операция не поддерживается, поскольку этот класс неизменяемый. |
static ImmutableDescriptor | union(Descriptor... descriptors) | Возвращает |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.management.Descriptor
getFieldNames, getFields, getFieldValue, getFieldValues Поля
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.
equals
public boolean equals(Object o)
Сравнивает этот дескриптор с заданным объектом. Объекты равны, если заданный объект также является дескриптором, и если два дескриптора имеют одинаковые имена полей (возможно, различающиеся регистром) и одинаковые связанные значения. Соответствующие значения для поля в двух дескрипторах равны, если выполняются следующие условия:
- Если одно значение равно null, то другое также должно быть null.
- Если одно значение является массивом примитивных типов, то другое должно быть массивом примитивных типов того же типа с теми же элементами.
- Если одно значение является массивом объектов, то другое также должно быть массивом объектов, и
Arrays.deepEquals(Object[],Object[])должно возвращать true. - В противном случае
Object.equals(Object)должно возвращать true.
- Унаследован от:
-
equalsв интерфейсеDescriptor - Переопределяет:
-
equalsв классеObject - Параметры:
-
o- объект для сравнения. - Возвращает:
-
trueесли объекты одинаковы;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
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 - Возвращает:
- Значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
isValid
public boolean isValid()
Возвращает true, если все поля имеют законные значения, учитывая их имена. Этот метод всегда возвращает true, но подкласс может переопределить его, чтобы вернуть false, когда это необходимо.
- Унаследован от:
-
isValidв интерфейсеDescriptor - Возвращает:
- true, если значения законны.
- Исключения:
-
RuntimeOperationsException- если проверка валидности завершилась неудачей. Метод возвращает false, если дескриптор не валиден, но выбрасывает это исключение, если попытка определить валидность завершилась неудачей.
clone
public Descriptor clone()
Возвращает дескриптор, равный этому дескриптору. Изменения в возвращаемом дескрипторе не повлияют на этот дескриптор, и наоборот.
Этот метод возвращает объект, на котором он был вызван. Подкласс может переопределить его, чтобы вернуть другой объект при условии соблюдения контракта.
- Унаследован от:
-
cloneв интерфейсеDescriptor - Переопределяет:
-
cloneв классеObject - Возвращает:
- клон этого экземпляра.
- Исключения:
-
RuntimeOperationsException- для недопустимого значения для имен полей или значений полей. Если построение дескриптора завершается неудачей по какой-либо причине, будет выбрано это исключение. - См. также:
Cloneable
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, если дескриптор неизменяемый, и вызов изменил бы его содержимое. - См. также:
Descriptor.getFields()
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, 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.management/javax/management/ImmutableDescriptor.html