Spec-Zone.ru › OpenJDK 24

Класс ImmutableDescriptor

java.lang.Object
javax.management.ImmutableDescriptor
Все реализуемые интерфейсы:
Serializable, Cloneable, Descriptor
public class ImmutableDescriptor extends Object implements Descriptor
Неизменяемый дескриптор.
С тех пор как:
1.6
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final ImmutableDescriptor EMPTY_DESCRIPTOR
Пустой дескриптор.

Краткое описание конструкторов

Конструктор Описание
ImmutableDescriptor(String... fields)
Создает дескриптор, содержащий заданные поля.
ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
Создает дескриптор, содержащий заданные поля и значения.
ImmutableDescriptor(Map<String,?> fields)
Создает дескриптор, где имена и значения полей являются ключами и значениями заданного Map.

Краткое описание методов

Модификатор и тип Метод Описание
Descriptor clone()
Возвращает дескриптор, равный этому дескриптору.
boolean equals(Object o)
Сравнивает этот дескриптор с заданным объектом.
final String[] getFieldNames()
Возвращает все имена полей в дескрипторе.
final String[] getFields()
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк.
final Object getFieldValue(String fieldName)
Возвращает значение для определенного имени поля или null, если для этого имени нет значения.
final Object[] getFieldValues(String... fieldNames)
Возвращает все значения полей в дескрипторе в виде массива объектов.
int hashCode()
Возвращает значение хэш-кода для этого дескриптора.
boolean isValid()
Возвращает true, если все поля имеют допустимые значения, учитывая их имена.
final void removeField(String fieldName)
Удаляет поле из дескриптора.
final void setField(String fieldName, Object fieldValue)
Эта операция не поддерживается, так как этот класс неизменяемый.
final void setFields(String[] fieldNames, Object[] fieldValues)
Эта операция не поддерживается, так как этот класс неизменяемый.
static ImmutableDescriptor union(Descriptor... descriptors)
Возвращает ImmutableDescriptor, содержимое которого является объединением заданных дескрипторов.

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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 является копией его полей на момент вызова метода:

 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
Возвращает значение для указанного имени поля или null, если для этого имени нет значения.
Унаследованно от:
getFieldValue в интерфейсе Descriptor
Параметры:
fieldName - имя поля.
Возвращает:
соответствующее значение или null, если поле отсутствует.

getFields

public final String[] getFields()
Описание скопировано из интерфейса: Descriptor
Возвращает все поля, содержащиеся в этом дескрипторе, в виде массива строк.
Унаследованно от:
getFields в интерфейсе Descriptor
Возвращает:
Массив строк полей в формате имяПоля=значениеПоля
Если значение поля не является строкой, то вызывается метод toString() для него, а возвращённое значение, заключённое в скобки, используется в качестве значения поля в возвращаемом массиве. Если значение поля равно null, то значение поля в возвращаемом массиве будет пустым. Если дескриптор пуст, то возвращается пустой массив.
См. также:
  • Descriptor.setFields(java.lang.String[], java.lang.Object[])

getFieldValues

public final Object[] getFieldValues(String... fieldNames)
Описание скопировано из интерфейса: Descriptor
Возвращает все значения полей в дескрипторе в виде массива объектов. Возвращаемые значения расположены в том же порядке, что и в массиве строк fieldNames.
Унаследованно от:
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 в противном случае.
См. также:
  • 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/ImmutableDescriptor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API