W3cubDocs

/OpenJDK 25

Interface Utf8Entry

All Superinterfaces:
AnnotationConstantValueEntry, CharSequence, PoolEntry
public sealed interface Utf8Entry extends CharSequence, AnnotationConstantValueEntry
Models a CONSTANT_UTF8_info constant, representing strings, in the constant pool of a class file. This describes strings in the Modified UTF-8 format.

The use of a Utf8Entry is represented by a String. Conversions are through ConstantPoolBuilder.utf8Entry(String) and stringValue().

Some uses of Utf8Entry represent field or method descriptor strings, symbolically represented as ClassDesc or MethodTypeDesc, depending on where a Utf8Entry appear. Entries representing such uses are created with ConstantPoolBuilder.utf8Entry(ClassDesc) and ConstantPoolBuilder.utf8Entry(MethodTypeDesc), and they can be converted to symbolic descriptors on a per-use-site basis, such as in AnnotationValue.OfClass.classSymbol() and MethodModel.methodTypeSymbol().

Unlike most constant pool entries, a UTF-8 entry is of flexible length: it is represented as an array structure, with an u2 for the data length in bytes, followed by that number of bytes of Modified UTF-8 data. It can represent at most 65535 bytes of data due to the physical restrictions.

See Java Virtual Machine Specification:
4.4.7 The CONSTANT_Utf8_info Structure
Since:
24
See Also:

Field Summary

Method Summary

Modifier and Type Method Description
boolean equalsString(String s)
Returns whether this entry describes the same string as the provided string.
boolean isFieldType(ClassDesc desc)
Returns whether this entry describes the descriptor string of this field type.
boolean isMethodType(MethodTypeDesc desc)
Returns whether this entry describes the descriptor string of this method type.
String stringValue()
Returns the string value for this entry.

Methods declared in interface AnnotationConstantValueEntry

constantValue

Methods declared in interface PoolEntry

constantPool, index, tag, width

Method Details

stringValue

String stringValue()
Returns the string value for this entry.
API Note:
A Utf8Entry can be used directly as a CharSequence if String functionalities are not strictly desired. If only string equivalence is desired, equalsString should be used. Reduction of string processing can significantly improve class file reading performance.
Returns:
the string value for this entry
See Also:

equalsString

boolean equalsString(String s)
Returns whether this entry describes the same string as the provided string.
Parameters:
s - the string to compare to
Returns:
whether this entry describes the same string as the provided string

isFieldType

boolean isFieldType(ClassDesc desc)
Returns whether this entry describes the descriptor string of this field type.
Parameters:
desc - the field type
Returns:
whether this entry describes the descriptor string of this field type
Since:
25

isMethodType

boolean isMethodType(MethodTypeDesc desc)
Returns whether this entry describes the descriptor string of this method type.
Parameters:
desc - the method type
Returns:
whether this entry describes the descriptor string of this method type
Since:
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/constantpool/Utf8Entry.html