W3cubDocs

/OpenJDK 25

Interface ConstantDynamicEntry

All Superinterfaces:
DynamicConstantPoolEntry, LoadableConstantEntry, PoolEntry
public sealed interface ConstantDynamicEntry extends DynamicConstantPoolEntry, LoadableConstantEntry
Models a 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
)
where nameAndType.type() is a field descriptor string.
API Note:
A dynamically-computed constant is frequently called a dynamic constant, or a condy, from the abbreviation of "constant dynamic".
See Java Virtual Machine Specification:
4.4.10 The CONSTANT_Dynamic_info and CONSTANT_InvokeDynamic_info Structures
Since:
24
See Also:

Field Summary

Method Summary

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.

Methods declared in interface PoolEntry

constantPool, index, tag, width

Method Details

typeSymbol

default ClassDesc typeSymbol()
Returns a symbolic descriptor for the field type of this dynamically-computed constant.
Returns:
a symbolic descriptor for the field type of this dynamically-computed constant

constantValue

default ConstantDesc constantValue()
Returns a symbolic descriptor of this constant.

This is equivalent to asSymbol().

Specified by:
constantValue in interface LoadableConstantEntry
Returns:
a symbolic descriptor of this constant
See Also:

asSymbol

default DynamicConstantDesc<?> asSymbol()
Returns a symbolic descriptor for this dynamically-computed constant.
Returns:
a symbolic descriptor for this dynamically-computed constant
See Also:

typeKind

default TypeKind typeKind()
Returns the data type of this constant.

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.

Specified by:
typeKind in interface LoadableConstantEntry
API Note:
The data type of a dynamically-computed constant depends on its descriptor, while the data type of all other constants can be determined by their constant type.
Returns:
the data type of this constant

© 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