Интерфейс PoolEntry
- Все известные подинтерфейсы:
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
Представляет запись в пуле констант файла
class. Записи считываются из файлов class, а создать их можно с помощью ConstantPoolBuilder для записи в файлы class.- Примечание по реализации:
-
Непривязанные записи пула констант
Реализации могут создавать непривязанные записи пула констант, не принадлежащие фактическому пулу констант. Они удобно представляют записи пула констант, на которые ссылаются непривязанные атрибуты, не считанные из файлаclass. Ихindex()возвращают неположительное недопустимое значение, а поведение ихconstantPool()не определено. Они считаются чужими для любого контекстного пула констант и преобразуются при записи в файлыclass. - Граф запечатанной иерархии классов:
- С версии:
- 24
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
TAG_CLASS |
Тег для константы типа CONSTANT_Class. |
static final int |
TAG_DOUBLE |
Тег для константы типа CONSTANT_Double. |
static final int |
TAG_DYNAMIC |
Тег для константы типа CONSTANT_Dynamic. |
static final int |
TAG_FIELDREF |
Тег для константы типа CONSTANT_Fieldref. |
static final int |
TAG_FLOAT |
Тег для константы типа CONSTANT_Float. |
static final int |
TAG_INTEGER |
Тег для константы типа CONSTANT_Integer. |
static final int |
TAG_INTERFACE_METHODREF |
Тег для константы типа CONSTANT_InterfaceMethodref. |
static final int |
TAG_INVOKE_DYNAMIC |
Тег для константы типа CONSTANT_InvokeDynamic. |
static final int |
TAG_LONG |
Тег для константы типа CONSTANT_Long. |
static final int |
TAG_METHOD_HANDLE |
Тег для константы типа CONSTANT_MethodHandle. |
static final int |
TAG_METHOD_TYPE |
Тег для константы типа CONSTANT_MethodType. |
static final int |
TAG_METHODREF |
Тег для константы типа CONSTANT_Methodref. |
static final int |
TAG_MODULE |
Тег для константы типа CONSTANT_Module. |
static final int |
TAG_NAME_AND_TYPE |
Тег для константы типа CONSTANT_NameAndType. |
static final int |
TAG_PACKAGE |
Тег для константы типа CONSTANT_Package. |
static final int |
TAG_STRING |
Тег для константы типа CONSTANT_String. |
static final int |
TAG_UTF8 |
Тег для константы типа CONSTANT_Utf8. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ConstantPool |
constantPool() |
Возвращает пул констант, из которого взята эта запись. |
int |
index() |
Возвращает индекс этой записи в пуле констант. |
int |
tag() |
Возвращает тег пула констант, описывающий тип этой записи. |
int |
width() |
Возвращает количество ячеек пула констант, занимаемых этой записью. |
Подробное описание полей
TAG_CLASS
TAG_DOUBLE
TAG_DYNAMIC
TAG_FIELDREF
TAG_FLOAT
TAG_INTEGER
TAG_INTERFACE_METHODREF
static final int TAG_INTERFACE_METHODREF
Тег для константы типа
CONSTANT_InterfaceMethodref.- См. также:
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
Подробное описание методов
constantPool
ConstantPool constantPool()
Возвращает пул констант, из которого взята эта запись.
- Примечание к API:
- Для определения принадлежности записи построителю, имея
ConstantPoolBuilderbuilderиPoolEntry entry, используйтеbuilder.canWriteDirect(entry.constantPool()), а не сравнение пулов констант на равенство объектов. - Возвращает:
- пул констант, из которого взята эта запись
- См. также:
tag
int tag()
Возвращает тег пула констант, описывающий тип этой записи.
- Примечание к API:
-
Константы этого класса с префиксом
TAG_, напримерTAG_UTF8, описывают возможные возвращаемые значения этого метода. - Возвращает:
- тег пула констант, описывающий тип этой записи
index
int index()
Возвращает индекс этой записи в пуле констант. Допустимый индекс всегда положителен; если индекс неположителен, эта запись является непривязанной.
- Возвращает:
- индекс этой записи в пуле констант
- См. также:
width
int width()
Возвращает количество ячеек пула констант, занимаемых этой записью.
Ширина всех записей пула, кроме CONSTANT_Long и CONSTANT_Double, равна 1. Ширина этих двух исключений равна 2, а следующие за ними индексы, доступные по index() + 1, считаются непригодными для использования.
- Примечание к API:
- Если эта запись загружаемая, её ширина не определяет, следует ли загружать её с помощью
ldcилиldc2_w. Например,ConstantDynamicEntryвсегда имеет ширину1, но её необходимо загружать с помощьюldc2_w, если её тип —longилиdouble. ИспользуйтеtypeKind().slotSize(), чтобы определить инструкцию загрузки. - Возвращает:
- количество ячеек пула констант, занимаемых этой записью
- См. также:
© 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/PoolEntry.html