DynamicConstantPoolEntry, LoadableConstantEntry, PoolEntrypublic sealed interface ConstantDynamicEntry extends DynamicConstantPoolEntry, LoadableConstantEntry
CONSTANT_Dynamic_info structure, representing a dynamically-computed constant, in the constant pool of a
class file. The use of a ConstantDynamicEntry is modeled by a DynamicConstantDesc. Conversions are through asSymbol() and ConstantPoolBuilder.constantDynamicEntry(DynamicConstantDesc).
A dynamic constant entry is composite:
ConstantDynamicEntry(
BootstrapMethodEntry bootstrap,
NameAndTypeEntry nameAndType
)
nameAndType.type() is a field descriptor string.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 |
|---|---|---|
default DynamicConstantDesc |
asSymbol() |
Returns a symbolic descriptor for this dynamically-computed constant. |
default ConstantDesc |
constantValue() |
Returns a symbolic descriptor of this constant. |
default TypeKind |
typeKind() |
Returns the data type of this constant. |
default ClassDesc |
typeSymbol() |
Returns a symbolic descriptor for the field type of this dynamically-computed constant. |
bootstrap, bootstrapMethodIndex, name, nameAndType, type
constantPool, index, tag, width
default ClassDesc typeSymbol()
default ConstantDesc constantValue()
This is equivalent to asSymbol().
constantValue in interface LoadableConstantEntry
default DynamicConstantDesc<?> asSymbol()
default TypeKind typeKind()
If the data type is of category 2, this constant must be loaded with ldc2_w; otherwise, the data type is of category 1, and this constant must be loaded with ldc or ldc_w.
typeKind in interface LoadableConstantEntry
© 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/ConstantDynamicEntry.html