Spec-Zone.ru › OpenJDK 27

Класс 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, содержимое которого представляет собой объединение указанных дескрипторов.

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения указанного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения указанного времени.

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

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 — если два Descriptors содержат поля с одинаковыми именами, но разными значениями. Значения примитивных массивов считаются одинаковыми, если они имеют одинаковый тип и одинаковые элементы. Значения массивов объектов считаются одинаковыми, если 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
Возвращает:
Массив строк с полями в формате имяПоля=значениеПоля
Если значение поля не является String, метод toString() будет вызван для него, а возвращенное значение, заключенное в скобки, будет использовано в качестве значения поля в возвращенном массиве. Если значение поля равно null, значение поля в возвращенном массиве будет пустым. Если дескриптор пуст, будет возвращен пустой массив.
См. также:
  • Descriptor.setFields(String[], Object[])

getFieldValues

public final Object[] getFieldValues(String... fieldNames)
Описание скопировано из интерфейса: Descriptor
Возвращает все значения полей дескриптора в виде массива объектов. Возвращенные значения расположены в том же порядке, что и в массиве String параметра fieldNames.
Определен в:
getFieldValues в интерфейсе Descriptor
Параметры:
fieldNames — массив String с именами полей, значения которых необходимо вернуть. Если массив пуст, будет возвращен пустой массив. Если массив равен null, будут возвращены все значения, как если бы параметром был массив, возвращенный методом Descriptor.getFieldNames(). Если имя поля в массиве отсутствует, в том числе если оно равно null или пустой строке, для соответствующего элемента возвращаемого массива будет возвращено null.
Возвращает:
Массив объектов со значениями полей. Если список fieldNames пуст, будет возвращен пустой массив.

getFieldNames

public final String[] getFieldNames()
Описание скопировано из интерфейса: Descriptor
Возвращает все имена полей в дескрипторе.
Определен в:
getFieldNames в интерфейсе Descriptor
Возвращает:
Массив String с именами полей. Если дескриптор пуст, будет возвращен пустой массив.

equals

public boolean equals(Object o)
Описание скопировано из интерфейса: Descriptor

Сравнивает этот дескриптор с указанным объектом. Объекты равны, если указанный объект также является Descriptor и оба Descriptor имеют одинаковые имена полей (регистр символов может различаться) и одинаковые соответствующие значения. Значения соответствующего поля в двух Descriptor равны, если выполняются следующие условия:

  • Если одно значение равно 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()
Описание скопировано из интерфейса: Descriptor

Возвращает хеш-код этого дескриптора. Хеш-код вычисляется как сумма хеш-кодов всех полей дескриптора. Хеш-код поля с именем 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(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 — массив String с именами полей. Массив и его элементы не могут быть равны null.
fieldValues — массив Object с соответствующими значениями полей. Массив не может быть равен 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 — имя String удаляемого поля. Если имя поля недопустимо или поле не найдено, исключение не выбрасывается.
Исключения:
RuntimeOperationsException — если поле с указанным именем существует, а дескриптор является неизменяемым. Обернутое исключение будет иметь тип UnsupportedOperationException.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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