Spec-Zone.ru › OpenJDK 27

Интерфейс InvokeDynamicEntry

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

Использование InvokeDynamicEntry моделируется символьным дескриптором DynamicCallSiteDesc. Его можно получить с помощью InvokeDynamicEntry::asSymbol и преобразовать обратно в запись пула констант с помощью ConstantPoolBuilder::invokeDynamicEntry.

Запись invoke dynamic является составной:

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

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

Поля, объявленные в интерфейсе 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 DynamicCallSiteDesc asSymbol()
Возвращает символьный дескриптор этой динамической точки вызова.
default MethodTypeDesc 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 MethodTypeDesc typeSymbol()
Возвращает символьный дескриптор типа вызова этой динамической точки вызова.
Возвращает:
символьный дескриптор типа вызова этой динамической точки вызова

asSymbol

default DynamicCallSiteDesc asSymbol()
Возвращает символьный дескриптор этой динамической точки вызова.
Возвращает:
символьный дескриптор этой динамической точки вызова
См. также:
  • ConstantPoolBuilder::invokeDynamicEntry(DynamicCallSiteDesc)

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