Spec-Zone.ru › OpenJDK 27

Интерфейс ConstantDynamicEntry

Все супер интерфейсы:
DynamicConstantPoolEntry, LoadableConstantEntry, PoolEntry
public sealed interface ConstantDynamicEntry extends DynamicConstantPoolEntry, LoadableConstantEntry
Моделирует структуру CONSTANT_Dynamic_info, представляющую динамически вычисляемую константу в пуле констант файла class.

Использование ConstantDynamicEntry моделируется с помощью DynamicConstantDesc. Преобразования выполняются с помощью asSymbol() и ConstantPoolBuilder.constantDynamicEntry(DynamicConstantDesc).

Запись динамической константы является составной:

ConstantDynamicEntry(
    BootstrapMethodEntry bootstrap,
    NameAndTypeEntry nameAndType
)
где nameAndType.type() — это строка дескриптора поля.
Примечание к API:
Динамически вычисляемую константу часто называют динамической константой или condy — сокращением от «constant dynamic».
См. Спецификацию виртуальной машины Java:
4.4.10 Структуры CONSTANT_Dynamic_info и CONSTANT_InvokeDynamic_info
Начиная с версии:
24
См. также:
  • ConstantPoolBuilder::constantDynamicEntry
  • DynamicConstantDesc
  • Динамически вычисляемые константы

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

Поля, объявленные в интерфейсе PoolEntry

TAG_CLASS, TAG_DOUBLE, TAG_DYNAMIC, TAG_FIELDREF, TAG_FLOAT, TAG_INTEGER, TAG_INTERFACE_METHODREF, TAG_INVOKE_DYNAMIC, TAG_LONG, TAG_METHOD_HANDLE, TAG_METHOD_TYPE, TAG_METHODREF, TAG_MODULE, TAG_NAME_AND_TYPE, TAG_PACKAGE, TAG_STRING, TAG_UTF8
Модификатор и тип Поле Описание
static final int TAG_CLASS
Тег для константы вида CONSTANT_Class.
static final int TAG_DOUBLE
Тег для константы вида CONSTANT_Double.
static final int TAG_DYNAMIC
Тег для константы вида CONSTANT_Dynamic.
static final int TAG_FIELDREF
Тег для константы вида CONSTANT_Fieldref.
static final int TAG_FLOAT
Тег для константы вида CONSTANT_Float.
static final int TAG_INTEGER
Тег для константы вида CONSTANT_Integer.
static final int TAG_INTERFACE_METHODREF
Тег для константы вида CONSTANT_InterfaceMethodref.
static final int TAG_INVOKE_DYNAMIC
Тег для константы вида CONSTANT_InvokeDynamic.
static final int TAG_LONG
Тег для константы вида CONSTANT_Long.
static final int TAG_METHOD_HANDLE
Тег для константы вида CONSTANT_MethodHandle.
static final int TAG_METHOD_TYPE
Тег для константы вида CONSTANT_MethodType.
static final int TAG_METHODREF
Тег для константы вида CONSTANT_Methodref.
static final int TAG_MODULE
Тег для константы вида CONSTANT_Module.
static final int TAG_NAME_AND_TYPE
Тег для константы вида CONSTANT_NameAndType.
static final int TAG_PACKAGE
Тег для константы вида CONSTANT_Package.
static final int TAG_STRING
Тег для константы вида CONSTANT_String.
static final int TAG_UTF8
Тег для константы вида CONSTANT_Utf8.

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

Модификатор и тип Метод Описание
default DynamicConstantDesc<?> asSymbol()
Возвращает символический дескриптор этой динамически вычисляемой константы.
default ConstantDesc constantValue()
Возвращает символический дескриптор этой константы.
default TypeKind typeKind()
Возвращает тип данных этой константы.
default ClassDesc typeSymbol()
Возвращает символический дескриптор типа поля этой динамически вычисляемой константы.

Методы, объявленные в интерфейсе DynamicConstantPoolEntry

bootstrap, bootstrapMethodIndex, name, nameAndType, type
Модификатор и тип Метод Описание
BootstrapMethodEntry bootstrap()
Возвращает запись в таблице методов начальной загрузки для этой константы.
int bootstrapMethodIndex()
Возвращает индекс записи в таблице методов начальной загрузки для этой константы.
default Utf8Entry name()
Возвращает имя, указанное этой символической ссылкой.
NameAndTypeEntry nameAndType()
Возвращает имя и строку дескриптора, указанные этой символической ссылкой.
default Utf8Entry type()
Возвращает строку дескриптора, указанную этой символической ссылкой.

Методы, объявленные в интерфейсе PoolEntry

constantPool, index, tag, width
Модификатор и тип Метод Описание
ConstantPool constantPool()
Возвращает пул констант, из которого получена эта запись.
int index()
Возвращает индекс этой записи в пуле констант.
int tag()
Возвращает тег пула констант, описывающий тип этой записи.
int width()
Возвращает количество слотов пула констант, занимаемых этой записью.

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

typeSymbol

default ClassDesc typeSymbol()
Возвращает символический дескриптор типа поля этой динамически вычисляемой константы.
Возвращает:
символический дескриптор типа поля этой динамически вычисляемой константы

constantValue

default ConstantDesc constantValue()
Возвращает символический дескриптор этой константы.

Эквивалентно asSymbol().

Определено в:
constantValue в интерфейсе LoadableConstantEntry
Возвращает:
символический дескриптор этой константы
См. также:
  • ConstantPoolBuilder.loadableConstantEntry(ConstantDesc)

asSymbol

default DynamicConstantDesc<?> asSymbol()
Возвращает символический дескриптор этой динамически вычисляемой константы.
Возвращает:
символический дескриптор этой динамически вычисляемой константы
См. также:
  • ConstantPoolBuilder::constantDynamicEntry(DynamicConstantDesc)

typeKind

default TypeKind typeKind()
Возвращает тип данных этой константы.

Если тип данных относится к категории 2, эту константу необходимо загружать с помощью ldc2_w; в противном случае тип данных относится к категории 1, и эту константу необходимо загружать с помощью ldc или ldc_w.

Определено в:
typeKind в интерфейсе LoadableConstantEntry
Примечание к API:
Тип данных динамически вычисляемой константы зависит от её дескриптора, тогда как тип данных всех остальных констант можно определить по их типу константы.
Возвращает:
тип данных этой константы

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