Spec-Zone.ru › OpenJDK 25

Интерфейс Utf8Entry

Все суперинтерфейсы:
AnnotationConstantValueEntry, CharSequence, PoolEntry
public sealed interface Utf8Entry extends CharSequence, AnnotationConstantValueEntry
Моделирует константу CONSTANT_UTF8_info, представляющую строки в пуле констант файла class. Описывает строки в формате Modified UTF-8.

Использование Utf8Entry представлено объектом String. Преобразования выполняются с помощью ConstantPoolBuilder.utf8Entry(String) и stringValue().

Некоторые варианты использования Utf8Entry представляют строки дескрипторов полей или методов, символически представленные как ClassDesc или MethodTypeDesc в зависимости от того, где появляется Utf8Entry. Записи, представляющие такие варианты использования, создаются с помощью ConstantPoolBuilder.utf8Entry(ClassDesc) и ConstantPoolBuilder.utf8Entry(MethodTypeDesc). Их можно преобразовать в символические дескрипторы отдельно для каждого места использования, например, в AnnotationValue.OfClass.classSymbol() и MethodModel.methodTypeSymbol().

В отличие от большинства записей пула констант, запись UTF-8 имеет переменную длину: она представлена структурой-массивом, содержащей u2, задающее длину данных в байтах, за которым следует указанное количество байтов данных в формате Modified UTF-8. Из-за физических ограничений она может представлять не более 65535 байт данных.

См. Спецификацию виртуальной машины Java:
4.4.7 Структура CONSTANT_Utf8_info
Начиная с версии:
24
См. также:
  • Modified UTF-8

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

Поля, объявленные в интерфейсе 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

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

Модификатор и тип Метод Описание
boolean equalsString(String s)
Возвращает значение, указывающее, описывает ли эта запись ту же строку, что и переданная строка.
boolean isFieldType(ClassDesc desc)
Возвращает значение, указывающее, описывает ли эта запись строку дескриптора данного типа поля.
boolean isMethodType(MethodTypeDesc desc)
Возвращает значение, указывающее, описывает ли эта запись строку дескриптора данного типа метода.
String stringValue()
Возвращает строковое значение этой записи.

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

constantValue

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

charAt, chars, codePoints, getChars, isEmpty, length, subSequence, toString

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

constantPool, index, tag, width

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

stringValue

String stringValue()
Возвращает строковое значение этой записи.
Примечание к API:
Объект Utf8Entry можно использовать непосредственно как CharSequence, если функциональность String не является строго необходимой. Если требуется только сравнение строк на равенство, следует использовать equalsString. Сокращение объема обработки строк может значительно повысить производительность чтения файлов class.
Возвращает:
строковое значение этой записи
См. также:
  • ConstantPoolBuilder.utf8Entry(String)

equalsString

boolean equalsString(String s)
Возвращает значение, указывающее, описывает ли эта запись ту же строку, что и переданная строка.
Параметры:
s — строка для сравнения
Возвращает:
значение, указывающее, описывает ли эта запись ту же строку, что и переданная строка

isFieldType

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

isMethodType

boolean isMethodType(MethodTypeDesc 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/Utf8Entry.html

Spec-Zone.ru

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