Interface ConstantDynamicEntry
- All Superinterfaces:
DynamicConstantPoolEntry, LoadableConstantEntry, PoolEntry
public sealed interface ConstantDynamicEntry
extends DynamicConstantPoolEntry, LoadableConstantEntry
Models a
where
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_UTF8Modifier and TypeFieldDescriptionstatic final intThe tag forCONSTANT_Classconstant kind.static final intThe tag forCONSTANT_Doubleconstant kind.static final intThe tag forCONSTANT_Dynamicconstant kind.static final intThe tag forCONSTANT_Fieldrefconstant kind.static final intThe tag forCONSTANT_Floatconstant kind.static final intThe tag forCONSTANT_Integerconstant kind.static final intThe tag forCONSTANT_InterfaceMethodrefconstant kind.static final intThe tag forCONSTANT_InvokeDynamicconstant kind.static final intThe tag forCONSTANT_Longconstant kind.static final intThe tag forCONSTANT_MethodHandleconstant kind.static final intThe tag forCONSTANT_MethodTypeconstant kind.static final intThe tag forCONSTANT_Methodrefconstant kind.static final intThe tag forCONSTANT_Moduleconstant kind.static final intThe tag forCONSTANT_NameAndTypeconstant kind.static final intThe tag forCONSTANT_Packageconstant kind.static final intThe tag forCONSTANT_Stringconstant kind.static final intThe tag forCONSTANT_Utf8constant kind. -
Method Summary
Modifier and TypeMethodDescriptiondefault DynamicConstantDesc<?> asSymbol()Returns a symbolic descriptor for this dynamically-computed constant.default ConstantDescReturns a symbolic descriptor of this constant.default TypeKindtypeKind()Returns the data type of this constant.default ClassDescReturns a symbolic descriptor for the field type of this dynamically-computed constant.Methods declared in interface DynamicConstantPoolEntry
bootstrap, bootstrapMethodIndex, name, nameAndType, typeModifier and TypeMethodDescriptionReturns the entry in the bootstrap method table for this constant.intReturns index of the entry in the bootstrap method table for this constant.default Utf8Entryname()Returns the name indicated by this symbolic reference.Returns the name and the descriptor string indicated by this symbolic reference.default Utf8Entrytype()Returns the descriptor string indicated by this symbolic reference.Methods declared in interface PoolEntry
constantPool, index, tag, widthModifier and TypeMethodDescriptionReturns the constant pool this entry is from.intindex()Returns the index within the constant pool corresponding to this entry.inttag()Returns the constant pool tag that describes the type of this entry.intwidth()Returns the number of constant pool slots this entry consumes.
-
Method Details
-
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
Returns a symbolic descriptor of this constant.This is equivalent to
asSymbol().- Specified by:
constantValuein interfaceLoadableConstantEntry- Returns:
- a symbolic descriptor of this constant
- See Also:
-
asSymbol
Returns a symbolic descriptor for this dynamically-computed constant.- Returns:
- a symbolic descriptor for this dynamically-computed constant
- See Also:
-
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 withldcorldc_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
-