Интерфейс 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, описывают возможные возвращаемые значения этого метода. - Возвращает:
- тег пула констант, описывающий тип этой записи
индекс
int index()
Возвращает индекс в константном пуле, соответствующий этому элементу. Действительный индекс всегда положителен; если индекс неположителен, этот элемент не привязан.
- Возвращает:
- индекс в константном пуле, соответствующий этому элементу
- См. также:
ширина
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/constantpool/PoolEntry.html