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:
  • 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