Interface PoolEntry
- All Known Subinterfaces:
AnnotationConstantValueEntry, ClassEntry, ConstantDynamicEntry, ConstantValueEntry, DoubleEntry, DynamicConstantPoolEntry, FieldRefEntry, FloatEntry, IntegerEntry, InterfaceMethodRefEntry, InvokeDynamicEntry, LoadableConstantEntry, LongEntry, MemberRefEntry, MethodHandleEntry, MethodRefEntry, MethodTypeEntry, ModuleEntry, NameAndTypeEntry, PackageEntry, StringEntry, Utf8Entry
public sealed interface PoolEntry permits AnnotationConstantValueEntry, DynamicConstantPoolEntry, LoadableConstantEntry, MemberRefEntry, ModuleEntry, NameAndTypeEntry, PackageEntry
Models an entry in the constant pool of a
class file. Entries are read from class files, and can be created with a ConstantPoolBuilder to write to class files.- Implementation Note:
-
Unbound Constant Pool Entries
Implementations may create unbound constant pool entries not belonging to an actual constant pool. They conveniently represent constant pool entries referred by unbound attributes not read from aclassfile. Theirindex()return a non-positive invalid value, and behaviors of theirconstantPool()are unspecified. They are considered alien to any contextual constant pool and will be converted when they are written toclassfiles. - Sealed Class Hierarchy Graph:
- Since:
- 24
- See Also:
Field Summary
| 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 |
|---|---|---|
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. |
Field Details
TAG_CLASS
TAG_DOUBLE
TAG_DYNAMIC
TAG_FIELDREF
TAG_FLOAT
TAG_INTEGER
TAG_INTERFACE_METHODREF
static final int TAG_INTERFACE_METHODREF
The tag for
CONSTANT_InterfaceMethodref constant kind.- See Also:
TAG_INVOKE_DYNAMIC
TAG_LONG
TAG_METHOD_HANDLE
TAG_METHODREF
TAG_METHOD_TYPE
TAG_MODULE
TAG_NAME_AND_TYPE
TAG_PACKAGE
TAG_STRING
TAG_UTF8
Method Details
constantPool
ConstantPool constantPool()
Returns the constant pool this entry is from.
- API Note:
- Given a
ConstantPoolBuilderbuilderand aPoolEntry entry, usebuilder.canWriteDirect(entry.constantPool())instead of object equality of the constant pool to determine if an entry belongs to the builder. - Returns:
- the constant pool this entry is from
- See Also:
tag
int tag()
Returns the constant pool tag that describes the type of this entry.
- API Note:
-
TAG_-prefixed constants in this class, such asTAG_UTF8, describe the possible return values of this method. - Returns:
- the constant pool tag that describes the type of this entry
index
int index()
Returns the index within the constant pool corresponding to this entry. A valid index is always positive; if the index is non-positive, this entry is unbound.
- Returns:
- the index within the constant pool corresponding to this entry
- See Also:
width
int width()
Returns the number of constant pool slots this entry consumes.
All pool entries except CONSTANT_Long and CONSTANT_Double have width 1. These two exceptions have width 2, and their subsequent indices at index() + 1 are considered unusable.
- API Note:
- If this entry is loadable, the width of this entry does not decide if this entry should be loaded with
ldcorldc2_w. For example,ConstantDynamicEntryalways has width1, but it must be loaded withldc2_wif its type islongordouble. UsetypeKind().slotSize()to determine the loading instruction instead. - Returns:
- the number of constant pool slots this entry consumes
- See Also:
© 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.