Spec-Zone.ru › OpenJDK 24

Интерфейс 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.
График иерархии класса с запечатанными классами:
Sealed class hierarchy graph for PoolEntrySealed class hierarchy graph for PoolEntry
С:
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

static final int TAG_CLASS
Тег тега для константы типа CONSTANT_Class.
См. также:
  • Значения константных полей

TAG_DOUBLE

static final int TAG_DOUBLE
Тег тега для константы типа CONSTANT_Double.
См. также:
  • Значения константных полей

TAG_DYNAMIC

static final int TAG_DYNAMIC
Тег тега для константы типа CONSTANT_Dynamic.
См. также:
  • Значения константных полей

TAG_FIELDREF

static final int TAG_FIELDREF
Тег тега для константы типа CONSTANT_Fieldref.
См. также:
  • Значения константных полей

TAG_FLOAT

static final int TAG_FLOAT
Тег тега для константы типа CONSTANT_Float.
См. также:
  • Значения константных полей

TAG_INTEGER

static final int TAG_INTEGER
Тег тега для константы типа CONSTANT_Integer.
См. также:
  • Значения константных полей

TAG_INTERFACE_METHODREF

static final int TAG_INTERFACE_METHODREF
Тег тега для константы типа CONSTANT_InterfaceMethodref.
См. также:
  • Значения константных полей

TAG_INVOKE_DYNAMIC

static final int TAG_INVOKE_DYNAMIC
Тег тега для константы типа CONSTANT_InvokeDynamic.
См. также:
  • Значения константных полей

TAG_LONG

static final int TAG_LONG
Тег тега для константы типа CONSTANT_Long.
См. также:
  • Значения константных полей

TAG_METHOD_HANDLE

static final int TAG_METHOD_HANDLE
Тег тега для константы типа CONSTANT_MethodHandle.
См. также:
  • Значения константных полей

TAG_METHODREF

static final int TAG_METHODREF
Тег тега для константы типа CONSTANT_Methodref.
См. также:
  • Значения константных полей

TAG_METHOD_TYPE

static final int TAG_METHOD_TYPE
Тег тега для константы типа CONSTANT_MethodType.
См. также:
  • Значения константных полей

TAG_MODULE

static final int TAG_MODULE
Тег тега для константы типа CONSTANT_Module.
См. также:
  • Значения константных полей

TAG_NAME_AND_TYPE

static final int TAG_NAME_AND_TYPE
Тег тега для константы типа CONSTANT_NameAndType.
См. также:
  • Значения константных полей

TAG_PACKAGE

static final int TAG_PACKAGE
Тег тега для константы типа CONSTANT_Package.
См. также:
  • Значения константных полей

TAG_STRING

static final int TAG_STRING
Тег тега для константы типа CONSTANT_String.
См. также:
  • Значения константных полей

TAG_UTF8

static final int TAG_UTF8
Тег тега для константы типа CONSTANT_Utf8.
См. также:
  • Значения константных полей

Подробное описание методов

constantPool

ConstantPool constantPool()
Возвращает пул констант, к которому относится данная запись.
Замечание API:
В случае использования ConstantPoolBuilder builder и PoolEntry entry, используйте builder.canWriteDirect(entry.constantPool()), а не проверку на равенство ссылок на пул констант, чтобы определить, принадлежит ли запись билдеру.
Возвращает:
пул констант, к которому относится данная запись
См. также:
  • Несвязанные записи пула констант

tag

int tag()
Возвращает тег пула констант, описывающий тип этой записи.
Замечание API:
Константы с префиксом TAG_ в этом классе, такие как TAG_UTF8, описывают возможные возвращаемые значения этого метода.
Возвращает:
тег пула констант, описывающий тип этой записи
END_OF_DOCUMENT_MARKER

индекс

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API