Spec-Zone.ru › OpenJDK 27

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:
  • ConstantPoolBuilder::constantDynamicEntry
  • DynamicConstantDesc
  • Dynamically-computed constants

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.
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:
  • ConstantPoolBuilder.loadableConstantEntry(ConstantDesc)

asSymbol

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

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

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

© 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