Spec-Zone.ru › OpenJDK 27

Интерфейс ClassEntry

Все суперинтерфейсы:
LoadableConstantEntry, PoolEntry
public sealed interface ClassEntry extends LoadableConstantEntry
Моделирует структуру CONSTANT_Class_info, представляющую ссылочный тип в пуле констант файла class.

Использование ClassEntry моделируется с помощью ClassDesc, который не является примитивным. Преобразования выполняются с помощью ConstantPoolBuilder.classEntry(ClassDesc) и asSymbol().

ClassEntry является составным:

ClassEntry(Utf8Entry name)
где name представляет:
  • Внутреннюю форму двоичного имени (JVMS §4.2.1), если и только если этот ClassEntry представляет класс или интерфейс, например java/lang/String для класса String.
  • Строку дескриптора поля (JVMS §4.3.2), представляющую тип массива, если и только если этот ClassEntry представляет тип массива, например [I для типа int[] или [Ljava/lang/String; для типа String[].
Строку дескриптора поля для типа массива можно отличить по начальному символу '['.
Примечание к API:
Внутренняя форма двоичного имени, в которой все вхождения . в имени заменены на /, неофициально называется внутренним именем. Это понятие применимо также к именам пакетов, помимо имен классов и интерфейсов.
См. Спецификацию виртуальной машины Java:
4.4.1 Структура CONSTANT_Class_info
Начиная с версии:
24
См. также:
  • ConstantPoolBuilder::classEntry
  • ClassDesc

Краткое описание полей

Поля, объявленные в интерфейсе PoolEntry

TAG_CLASS, TAG_DOUBLE, TAG_DYNAMIC, TAG_FIELDREF, TAG_FLOAT, TAG_INTEGER, TAG_INTERFACE_METHODREF, TAG_INVOKE_DYNAMIC, TAG_LONG, TAG_METHOD_HANDLE, TAG_METHOD_TYPE, TAG_METHODREF, TAG_MODULE, TAG_NAME_AND_TYPE, TAG_PACKAGE, TAG_STRING, TAG_UTF8
Модификатор и тип Поле Описание
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.

Краткое описание методов

Модификатор и тип Метод Описание
String asInternalName()
Возвращает представленный ссылочный тип в виде внутренней формы двоичного имени или строки дескриптора массива.
ClassDesc asSymbol()
Возвращает представленный ссылочный тип в виде символического дескриптора.
default ConstantDesc constantValue()
Возвращает символический дескриптор этой константы.
boolean matches(ClassDesc desc)
Возвращает значение, указывающее, описывает ли эта запись заданный ссылочный тип.
Utf8Entry name()
Возвращает Utf8Entry, на который ссылается эта структура.

Методы, объявленные в интерфейсе LoadableConstantEntry

typeKind
Модификатор и тип Метод Описание
default TypeKind typeKind()
Возвращает тип данных этой константы.

Методы, объявленные в интерфейсе PoolEntry

constantPool, index, tag, width
Модификатор и тип Метод Описание
ConstantPool constantPool()
Возвращает пул констант, из которого получена эта запись.
int index()
Возвращает индекс этой записи в пуле констант.
int tag()
Возвращает тег пула констант, описывающий тип этой записи.
int width()
Возвращает количество ячеек пула констант, занимаемых этой записью.

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

constantValue

default ConstantDesc constantValue()
Возвращает символический дескриптор этой константы.

Это эквивалентно asSymbol().

Определено в:
constantValue в интерфейсе LoadableConstantEntry
Возвращает:
символический дескриптор этой константы
См. также:
  • ConstantPoolBuilder.loadableConstantEntry(ConstantDesc)

name

Utf8Entry name()
Возвращает Utf8Entry, на который ссылается эта структура. Если значение UTF8 начинается с [, оно представляет тип массива, а значение является строкой дескриптора; в противном случае оно представляет класс или интерфейс, а значение является внутренней формой двоичного имени.
Возвращает:
Utf8Entry, на который ссылается эта структура
См. также:
  • ConstantPoolBuilder::classEntry(Utf8Entry)

asInternalName

String asInternalName()
Возвращает представленный ссылочный тип в виде внутренней формы двоичного имени или строки дескриптора массива. Это сокращённая форма вызова name().stringValue().
Возвращает:
представленный ссылочный тип в виде внутренней формы двоичного имени или строки дескриптора массива

asSymbol

ClassDesc asSymbol()
Возвращает представленный ссылочный тип в виде символического дескриптора. Возвращаемый дескриптор никогда не является примитивным.
Примечание к API:
Если требуется только эквивалентность символов, следует использовать matches. Этот метод требует меньше операций разбора и может повысить производительность чтения файлов class.
Возвращает:
представленный ссылочный тип в виде символического дескриптора
См. также:
  • ConstantPoolBuilder::classEntry(ClassDesc)

matches

boolean matches(ClassDesc desc)
Возвращает значение, указывающее, описывает ли эта запись заданный ссылочный тип. Возвращает false, если desc является примитивным.
Параметры:
desc — ссылочный тип
Возвращает:
значение, указывающее, описывает ли эта запись заданный ссылочный тип
Начиная с версии:
25

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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