PoolEntryConstantDynamicEntry, InvokeDynamicEntrypublic sealed interface DynamicConstantPoolEntry extends PoolEntry permits ConstantDynamicEntry, InvokeDynamicEntry
ConstantDynamicEntry and InvokeDynamicEntry, in the constant pool of a class file. Different types of dynamically-computed constant pool entries bear structural similarities, but they appear in distinct locations. As a result, their uses are represented by different symbolic descriptors, specific to each subtype.
A dynamic constant entry is composite:
DynamicConstantPoolEntry(
BootstrapMethodEntry bootstrap,
NameAndTypeEntry nameAndType
)
CONSTANT_Dynamic_info and
CONSTANT_InvokeDynamic_info StructuresTAG_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
| Modifier and Type | Method | Description |
|---|---|---|
BootstrapMethodEntry |
bootstrap() |
Returns the entry in the bootstrap method table for this constant. |
int |
bootstrapMethodIndex() |
Returns index of the entry in the bootstrap method table for this constant. |
default Utf8Entry |
name() |
Returns the name indicated by this symbolic reference. |
NameAndTypeEntry |
nameAndType() |
Returns the name and the descriptor string indicated by this symbolic reference. |
default Utf8Entry |
type() |
Returns the descriptor string indicated by this symbolic reference. |
constantPool, index, tag, width
BootstrapMethodEntry bootstrap()
int bootstrapMethodIndex()
bootstrap().bsmIndex().NameAndTypeEntry nameAndType()
default Utf8Entry name()
default Utf8Entry type()
ConstantDynamicEntry, or a method descriptor string if this entry is a InvokeDynamicEntry.typeSymbol for the symbolic descriptor derived from this descriptor string.
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/constantpool/DynamicConstantPoolEntry.html