Interface ClassEntry

All Superinterfaces:
LoadableConstantEntry, PoolEntry

public sealed interface ClassEntry extends LoadableConstantEntry
Models a CONSTANT_Class_info structure, representing a reference type, in the constant pool of a class file.

The use of a ClassEntry is modeled by a ClassDesc that is not primitive. Conversions are through ConstantPoolBuilder.classEntry(ClassDesc) and asSymbol().

A ClassEntry is composite:

ClassEntry(Utf8Entry name)
where name represents:
  • The internal form of a binary name (JVMS 4.2.1), if and only if this ClassEntry represents a class or interface, such as java/lang/String for the String class.
  • A field descriptor string (JVMS 4.3.2) representing an array type, if and only if this ClassEntry represents an array type, such as [I for the int[] type, or [Ljava/lang/String; for the String[] type.
A field descriptor string for an array type can be distinguished by its leading '[' character.
API Note:
The internal form of a binary name, where all occurrences of . in the name are replaced by /, is informally known as an internal name. This concept also applies to package names in addition to class and interface names.
See Java Virtual Machine Specification:
4.4.1 The CONSTANT_Class_info Structure
Since:
24
See Also: