Interface Utf8Entry
- All Superinterfaces:
AnnotationConstantValueEntry, CharSequence, PoolEntry
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 of
u2
.
- See Java Virtual Machine Specification:
-
4.4.7 The
CONSTANT_Utf8_info
Structure - Since:
- 24
- See Also:
-
Field Summary
Fields declared in interface 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
Modifier and TypeFieldDescriptionstatic final int
The tag forCONSTANT_Class
constant kind.static final int
The tag forCONSTANT_Double
constant kind.static final int
The tag forCONSTANT_Dynamic
constant kind.static final int
The tag forCONSTANT_Fieldref
constant kind.static final int
The tag forCONSTANT_Float
constant kind.static final int
The tag forCONSTANT_Integer
constant kind.static final int
The tag forCONSTANT_InterfaceMethodref
constant kind.static final int
The tag forCONSTANT_InvokeDynamic
constant kind.static final int
The tag forCONSTANT_Long
constant kind.static final int
The tag forCONSTANT_MethodHandle
constant kind.static final int
The tag forCONSTANT_MethodType
constant kind.static final int
The tag forCONSTANT_Methodref
constant kind.static final int
The tag forCONSTANT_Module
constant kind.static final int
The tag forCONSTANT_NameAndType
constant kind.static final int
The tag forCONSTANT_Package
constant kind.static final int
The tag forCONSTANT_String
constant kind.static final int
The tag forCONSTANT_Utf8
constant kind. -
Method Summary
Modifier and TypeMethodDescriptionboolean
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.Returns the string value for this entry.Methods declared in interface AnnotationConstantValueEntry
constantValue
Methods declared in interface CharSequence
charAt, chars, codePoints, getChars, isEmpty, length, subSequence, toString
Modifier and TypeMethodDescriptionchar
charAt
(int index) Returns thechar
value at the specified index.default IntStream
chars()
Returns a stream ofint
zero-extending thechar
values from this sequence.default IntStream
Returns a stream of code point values from this sequence.default void
getChars
(int srcBegin, int srcEnd, char[] dst, int dstBegin) Copies characters from this sequence into the given destination array.default boolean
isEmpty()
Returnstrue
if this character sequence is empty.int
length()
Returns the length of this character sequence.subSequence
(int start, int end) Returns aCharSequence
that is a subsequence of this sequence.toString()
Returns a string containing the characters in this sequence in the same order as this sequence.Methods declared in interface PoolEntry
constantPool, index, tag, width
Modifier and TypeMethodDescriptionReturns the constant pool this entry is from.int
index()
Returns the index within the constant pool corresponding to this entry.int
tag()
Returns the constant pool tag that describes the type of this entry.int
width()
Returns the number of constant pool slots this entry consumes.
-
Method Details
-
stringValue
String stringValue()Returns the string value for this entry.- API Note:
- A
Utf8Entry
can be used directly as aCharSequence
ifString
functionalities are not strictly desired. If only string equivalence is desired,equalsString
should be used. Reduction of string processing can significantly improveclass
file reading performance. - Returns:
- the string value for this entry
- See Also:
-
equalsString
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
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
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
-