Spec-Zone.ru › OpenJDK 25

Интерфейс 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

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

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

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

typeKind

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

constantPool, index, tag, 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, 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/ClassEntry.html

Spec-Zone.ru

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