Interface ConstantDynamicEntry
- All Superinterfaces:
DynamicConstantPoolEntry, LoadableConstantEntry, PoolEntry
public 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.- 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_infoandCONSTANT_InvokeDynamic_infoStructures
- Since:
- 24
- See Also:
Field Summary
Fields declared in interface 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 | Modifier and Type | Field | Description |
|---|---|---|
static final int |
TAG_CLASS |
The tag for CONSTANT_Class constant kind. |
static final int |
TAG_DOUBLE |
The tag for CONSTANT_Double constant kind. |
static final int |
TAG_DYNAMIC |
The tag for CONSTANT_Dynamic constant kind. |
static final int |
TAG_FIELDREF |
The tag for CONSTANT_Fieldref constant kind. |
static final int |
TAG_FLOAT |
The tag for CONSTANT_Float constant kind. |
static final int |
TAG_INTEGER |
The tag for CONSTANT_Integer constant kind. |
static final int |
TAG_INTERFACE_METHODREF |
The tag for CONSTANT_InterfaceMethodref constant kind. |
static final int |
TAG_INVOKE_DYNAMIC |
The tag for CONSTANT_InvokeDynamic constant kind. |
static final int |
TAG_LONG |
The tag for CONSTANT_Long constant kind. |
static final int |
TAG_METHOD_HANDLE |
The tag for CONSTANT_MethodHandle constant kind. |
static final int |
TAG_METHOD_TYPE |
The tag for CONSTANT_MethodType constant kind. |
static final int |
TAG_METHODREF |
The tag for CONSTANT_Methodref constant kind. |
static final int |
TAG_MODULE |
The tag for CONSTANT_Module constant kind. |
static final int |
TAG_NAME_AND_TYPE |
The tag for CONSTANT_NameAndType constant kind. |
static final int |
TAG_PACKAGE |
The tag for CONSTANT_Package constant kind. |
static final int |
TAG_STRING |
The tag for CONSTANT_String constant kind. |
static final int |
TAG_UTF8 |
The tag for CONSTANT_Utf8 constant kind. |
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 DynamicConstantPoolEntry
bootstrap, bootstrapMethodIndex, name, nameAndType, type | 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. |
Methods declared in interface PoolEntry
constantPool, index, tag, width | Modifier and Type | Method | Description |
|---|---|---|
ConstantPool |
constantPool() |
Returns the constant pool this entry is from. |
int |
index() |
Returns the index within the constant pool corresponding to this entry. |
int |
tag() |
Returns the constant pool tag that describes the type of this entry. |
int |
width() |
Returns the number of constant pool slots this entry consumes. |
Method Details
typeSymbol
default ClassDesc typeSymbol()
- Returns:
- a symbolic descriptor for the field type of this dynamically-computed constant
constantValue
default ConstantDesc constantValue()
This is equivalent to asSymbol().
- Specified by:
-
constantValuein interfaceLoadableConstantEntry - Returns:
- a symbolic descriptor of this constant
- See Also:
asSymbol
default DynamicConstantDesc<?> asSymbol()
- Returns:
- a symbolic descriptor for this dynamically-computed constant
- See Also:
typeKind
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.
- Specified by:
-
typeKindin interfaceLoadableConstantEntry - 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.