Spec-Zone.ru › OpenJDK 27

Класс DynamicConstantDesc<T>

java.lang.Object
java.lang.constant.DynamicConstantDesc<T>
Параметры типа:
T — тип динамической константы
Все реализуемые интерфейсы:
ConstantDesc
Прямые известные подклассы:
Enum.EnumDesc, VarHandle.VarHandleDesc
public abstract non-sealed class DynamicConstantDesc<T> extends Object implements ConstantDesc
номинальный дескриптор динамической константы (описанной в пуле констант с помощью Constant_Dynamic_info.)

Конкретные подтипы DynamicConstantDesc должны быть неизменяемыми, а их поведение не должно зависеть от идентичности объектов.

Начиная с:
12

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

DynamicConstantDesc(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
Модификатор Конструктор Описание
protected
Создает номинальный дескриптор динамической константы.

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

Модификатор и тип Метод Описание
ConstantDesc[] bootstrapArgs()
Возвращает аргументы bootstrap для этой константы.
List<ConstantDesc> bootstrapArgsList()
Возвращает аргументы bootstrap для этой константы в виде неизменяемого List.
DirectMethodHandleDesc bootstrapMethod()
Возвращает MethodHandleDesc, описывающий метод bootstrap для этой константы.
String constantName()
Возвращает имя, которое отображалось бы в операнде NameAndType для LDC этой константы.
ClassDesc constantType()
Возвращает ClassDesc, описывающий тип, который отображался бы в операнде NameAndType для LDC этой константы.
final boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство.
final int hashCode()
Возвращает хеш-код этого объекта.
static <T> DynamicConstantDesc<T> of(DirectMethodHandleDesc bootstrapMethod)
Возвращает номинальный дескриптор динамической константы без статических аргументов bootstrap, с параметром имени ConstantDescs.DEFAULT_NAME и параметром типа, всегда совпадающим с типом возвращаемого значения метода bootstrap.
static <T> DynamicConstantDesc<T> of(DirectMethodHandleDesc bootstrapMethod, ConstantDesc... bootstrapArgs)
Возвращает номинальный дескриптор динамической константы с параметром имени ConstantDescs.DEFAULT_NAME и параметром типа, всегда совпадающим с типом возвращаемого значения метода bootstrap.
static <T> ConstantDesc ofCanonical(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc[] bootstrapArgs)
Возвращает номинальный дескриптор динамической константы, преобразуя его в более конкретный тип, если bootstrap константы является известным, а более конкретный тип номинального дескриптора (например, ClassDesc) доступен.
static <T> DynamicConstantDesc<T> ofNamed(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
Возвращает номинальный дескриптор динамической константы.
T resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот дескриптор с помощью рефлексии, имитируя поведение разрешения, описанное в JVMS §5.4.3, и поведение контроля доступа, описанное в JVMS §5.4.4.
String toString()
Возвращает краткое текстовое описание этого описания константы, включая метод bootstrap, имя и тип константы, а также статические аргументы bootstrap.

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

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

Подробное описание конструкторов

DynamicConstantDesc

protected DynamicConstantDesc(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
Создает номинальный дескриптор динамической константы.
Параметры:
bootstrapMethod — DirectMethodHandleDesc, описывающий метод bootstrap константы
constantName — неквалифицированное имя, которое отображалось бы в операнде NameAndType для LDC этой константы
constantType — ClassDesc, описывающий тип, который отображался бы в операнде NameAndType для LDC этой константы
bootstrapArgs — ConstantDescs, описывающие статические аргументы bootstrap, которые отображались бы в атрибуте BootstrapMethods
Исключения:
NullPointerException — если какой-либо аргумент равен null
IllegalArgumentException — если name имеет неверный формат
См. Спецификацию виртуальной машины Java:
4.2.2 Неквалифицированные имена

Подробное описание методов

ofCanonical

public static <T> ConstantDesc ofCanonical(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc[] bootstrapArgs)
Возвращает номинальный дескриптор динамической константы, преобразуя его в более конкретный тип, если bootstrap константы является известным, а более конкретный тип номинального дескриптора (например, ClassDesc) доступен.

Для классов, методы Constable.describeConstable() которых возвращают DynamicConstantDesc с известным bootstrap, сюда входят Class (для экземпляров, описывающих примитивные типы), Enum и VarHandle.

API для чтения байт-кода, обрабатывающие пул констант и предоставляющие вызывающему коду его элементы в виде ConstantDesc, обычно должны использовать этот метод вместо ofNamed(DirectMethodHandleDesc, String, ClassDesc, ConstantDesc...), поскольку он может вернуть более конкретный тип, который можно предоставить вызывающему коду.

Параметры типа:
T — тип динамической константы
Параметры:
bootstrapMethod — DirectMethodHandleDesc, описывающий метод bootstrap константы
constantName — неквалифицированное имя, которое отображалось бы в операнде NameAndType для LDC этой константы
constantType — ClassDesc, описывающий тип, который отображался бы в операнде NameAndType для LDC этой константы
bootstrapArgs — ConstantDescs, описывающие статические аргументы bootstrap, которые отображались бы в атрибуте BootstrapMethods
Возвращает:
номинальный дескриптор
Исключения:
NullPointerException — если какой-либо аргумент равен null
IllegalArgumentException — если name имеет неверный формат
См. Спецификацию виртуальной машины Java:
4.2.2 Неквалифицированные имена

ofNamed

public static <T> DynamicConstantDesc<T> ofNamed(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
Возвращает номинальный дескриптор динамической константы.
Параметры типа:
T — тип динамической константы
Параметры:
bootstrapMethod — DirectMethodHandleDesc, описывающий метод bootstrap константы
constantName — неквалифицированное имя, которое отображалось бы в операнде NameAndType для LDC этой константы
constantType — ClassDesc, описывающий тип, который отображался бы в операнде NameAndType для LDC этой константы
bootstrapArgs — ConstantDescs, описывающие статические аргументы bootstrap, которые отображались бы в атрибуте BootstrapMethods
Возвращает:
номинальный дескриптор
Исключения:
NullPointerException — если какой-либо аргумент равен null
IllegalArgumentException — если name имеет неверный формат
См. Спецификацию виртуальной машины Java:
4.2.2 Неквалифицированные имена

of

public static <T> DynamicConstantDesc<T> of(DirectMethodHandleDesc bootstrapMethod, ConstantDesc... bootstrapArgs)
Возвращает номинальный дескриптор динамической константы с параметром имени ConstantDescs.DEFAULT_NAME и параметром типа, всегда совпадающим с типом возвращаемого значения метода bootstrap.
Параметры типа:
T — тип динамической константы
Параметры:
bootstrapMethod — DirectMethodHandleDesc, описывающий метод bootstrap константы
bootstrapArgs — ConstantDescs, описывающие статические аргументы bootstrap, которые отображались бы в атрибуте BootstrapMethods
Возвращает:
номинальный дескриптор
Исключения:
NullPointerException — если какой-либо аргумент равен null
См. Спецификацию виртуальной машины Java:
4.2.2 Неквалифицированные имена

of

public static <T> DynamicConstantDesc<T> of(DirectMethodHandleDesc bootstrapMethod)
Возвращает номинальный дескриптор динамической константы без статических аргументов bootstrap, с параметром имени ConstantDescs.DEFAULT_NAME и параметром типа, всегда совпадающим с типом возвращаемого значения метода bootstrap.
Параметры типа:
T — тип динамической константы
Параметры:
bootstrapMethod — DirectMethodHandleDesc, описывающий метод bootstrap константы
Возвращает:
номинальный дескриптор
Исключения:
NullPointerException — если какой-либо аргумент равен null

constantName

public String constantName()
Возвращает имя, которое отображалось бы в операнде NameAndType для LDC этой константы.
Возвращает:
имя константы

constantType

public ClassDesc constantType()
Возвращает ClassDesc, описывающий тип, который отображался бы в операнде NameAndType для LDC этой константы.
Возвращает:
тип константы

bootstrapMethod

public DirectMethodHandleDesc bootstrapMethod()
Возвращает MethodHandleDesc, описывающий метод bootstrap этой константы.
Возвращает:
метод bootstrap

bootstrapArgs

public ConstantDesc[] bootstrapArgs()
Возвращает аргументы bootstrap этой константы.
Возвращает:
аргументы bootstrap

bootstrapArgsList

public List<ConstantDesc> bootstrapArgsList()
Возвращает аргументы bootstrap этой константы в виде неизменяемого List.
Возвращает:
List аргументов bootstrap

resolveConstantDesc

public T resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException
Описание скопировано из интерфейса: ConstantDesc
Разрешает этот дескриптор с помощью рефлексии, имитируя поведение разрешения, описанное в JVMS §5.4.3, и поведение контроля доступа, описанное в JVMS §5.4.4. Контекст разрешения и контроля доступа задается параметром MethodHandles.Lookup. Кэширование полученного значения не выполняется.
Определено в:
resolveConstantDesc в интерфейсе ConstantDesc
Параметры:
lookup — MethodHandles.Lookup, задающий контекст разрешения имен и контроля доступа
Возвращает:
разрешенное значение константы
Исключения:
ReflectiveOperationException — если класс, метод или поле не удалось разрешить с помощью рефлексии в процессе разрешения

equals

public final boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство. Возвращает true тогда и только тогда, когда указанный объект также является DynamicConstantDesc, а дескрипторы имеют одинаковые методы bootstrap, списки аргументов bootstrap, имена констант и типы констант.
Переопределяет:
equals в классе Object
Параметры:
o — DynamicConstantDesc для сравнения с этим DynamicConstantDesc
Возвращает:
true, если указанный DynamicConstantDesc равен этому DynamicConstantDesc.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public final int hashCode()
Описание скопировано из класса: Object
Возвращает хеш-код этого объекта. Этот метод поддерживается для использования в хеш-таблицах, например предоставляемых HashMap.

Общий контракт метода hashCode таков:

  • Если метод вызывается для одного и того же объекта более одного раза в ходе выполнения приложения Java, метод hashCode должен каждый раз возвращать одно и то же целое число, при условии что сведения, используемые при сравнении объектов с помощью equals, не изменялись. Это целое число не обязано оставаться неизменным при разных запусках одного и того же приложения.
  • Если два объекта равны согласно методу equals, вызов метода hashCode для каждого из этих объектов должен возвращать одинаковый результат.
  • Не требуется, чтобы вызов метода hashCode для двух объектов, не равных согласно методу equals, возвращал разные целые числа. Однако программисту следует учитывать, что разные результаты для неравных объектов могут повысить производительность хеш-таблиц.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого объекта
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Возвращает краткое текстовое описание этого описания константы, включая метод bootstrap, имя и тип константы, а также статические аргументы bootstrap.
Переопределяет:
toString в классе Object
Возвращает:
краткое текстовое описание этого дескриптора точки вызова

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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