Интерфейс 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
- См. также:
Краткое описание полей
Поля, объявленные в интерфейсе 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 |
Возвращает значение, указывающее, описывает ли эта запись заданный ссылочный тип. |
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 - Возвращает:
- символический дескриптор этой константы
- См. также:
name
Utf8Entry name()
Возвращает
Utf8Entry, на который ссылается эта структура. Если значение UTF8 начинается с [, оно представляет тип массива, а значение является строкой дескриптора; в противном случае оно представляет класс или интерфейс, а значение является внутренней формой двоичного имени.- Возвращает:
Utf8Entry, на который ссылается эта структура- См. также:
asInternalName
String asInternalName()
Возвращает представленный ссылочный тип в виде внутренней формы двоичного имени или строки дескриптора массива. Это сокращённая форма вызова
name().stringValue().- Возвращает:
- представленный ссылочный тип в виде внутренней формы двоичного имени или строки дескриптора массива
asSymbol
ClassDesc asSymbol()
Возвращает представленный ссылочный тип в виде символического дескриптора. Возвращаемый дескриптор никогда не является примитивным.
- Примечание к API:
- Если требуется только эквивалентность символов, следует использовать
matches. Этот метод требует меньше операций разбора и может повысить производительность чтения файловclass. - Возвращает:
- представленный ссылочный тип в виде символического дескриптора
- См. также:
matches
boolean matches(ClassDesc desc)
Возвращает значение, указывающее, описывает ли эта запись заданный ссылочный тип. Возвращает
false, если desc является примитивным.- Параметры:
-
desc— ссылочный тип - Возвращает:
- значение, указывающее, описывает ли эта запись заданный ссылочный тип
- Начиная с версии:
- 25
© 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.