Spec-Zone.ru › OpenJDK 25

Интерфейс 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, описывают возможные возвращаемые значения этого метода.
Возвращает:
тег пула констант, описывающий тип этой записи

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(), чтобы определить инструкцию загрузки.
Возвращает:
количество ячеек пула констант, занимаемых этой записью
См. также:
  • Индекс в пуле констант

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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