Spec-Zone.ru › OpenJDK 27

Интерфейс DynamicConstantPoolEntry

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

Различные типы динамически вычисляемых записей пула констант имеют структурное сходство, но располагаются в разных местах. Поэтому их использование представлено различными символическими дескрипторами, специфичными для каждого подтипа.

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

DynamicConstantPoolEntry(
    BootstrapMethodEntry bootstrap,
    NameAndTypeEntry nameAndType
)
См. Спецификацию виртуальной машины Java:
4.4.10 Структуры CONSTANT_Dynamic_info и CONSTANT_InvokeDynamic_info
5.4.3.6 Разрешение динамически вычисляемых констант и точек вызова
Граф запечатанной иерархии классов:
Sealed class hierarchy graph for DynamicConstantPoolEntrySealed class hierarchy graph for DynamicConstantPoolEntry
Начиная с версии:
24
См. также:
  • Динамическое разрешение точек вызова и констант

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

Поля, объявленные в интерфейсе 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.

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

Модификатор и тип Метод Описание
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()
Возвращает количество ячеек пула констант, занимаемых этой записью.

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

bootstrap

BootstrapMethodEntry bootstrap()
Возвращает запись в таблице методов начальной загрузки для этой константы.
Возвращает:
запись в таблице методов начальной загрузки для этой константы
См. также:
  • Выполнение методов начальной загрузки
  • ConstantPoolBuilder::constantDynamicEntry(BootstrapMethodEntry, NameAndTypeEntry)
  • ConstantPoolBuilder::invokeDynamicEntry(BootstrapMethodEntry, NameAndTypeEntry)

bootstrapMethodIndex

int bootstrapMethodIndex()
Возвращает индекс записи в таблице методов начальной загрузки для этой константы. Возвращаемое значение эквивалентно bootstrap().bsmIndex().
Возвращает:
индекс записи в таблице методов начальной загрузки для этой константы

nameAndType

NameAndTypeEntry nameAndType()
Возвращает имя и строку дескриптора, указанные этой символической ссылкой.
Возвращает:
имя и строку дескриптора, указанные этой символической ссылкой
См. также:
  • Выполнение методов начальной загрузки
  • ConstantPoolBuilder::constantDynamicEntry(BootstrapMethodEntry, NameAndTypeEntry)
  • ConstantPoolBuilder::invokeDynamicEntry(BootstrapMethodEntry, NameAndTypeEntry)

name

default Utf8Entry name()
Возвращает имя, указанное этой символической ссылкой.
Возвращает:
имя, указанное этой символической ссылкой

type

default Utf8Entry type()
Возвращает строку дескриптора, указанную этой символической ссылкой. Если эта запись является ConstantDynamicEntry, это строка дескриптора поля; если же эта запись является InvokeDynamicEntry, это строка дескриптора метода.
Примечание к API:
В каждом подинтерфейсе предусмотрен специальный метод доступа с именем typeSymbol для символического дескриптора, полученного из этой строки дескриптора.
Возвращает:
строку дескриптора, указанную этой символической ссылкой

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