Interface ClassEntry
- All Superinterfaces:
LoadableConstantEntry, PoolEntry
Models a
where
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
)
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 asjava/lang/String
for theString
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 theint[]
type, or[Ljava/lang/String;
for theString[]
type.
'['
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:
-
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
-
Method Summary
Modifier and TypeMethodDescriptionReturns the represented reference type, as the internal form of a binary name or an array descriptor string.asSymbol()
Returns the represented reference type, as a symbolic descriptor.default ConstantDesc
Returns a symbolic descriptor of this constant.boolean
Returns whether this entry describes the given reference type.name()
Returns theUtf8Entry
referred by this structure.Methods declared in interface LoadableConstantEntry
typeKind
Methods declared in interface PoolEntry
constantPool, index, tag, width
-
Method Details
-
constantValue
Returns a symbolic descriptor of this constant.This is equivalent to
asSymbol()
.- Specified by:
constantValue
in interfaceLoadableConstantEntry
- Returns:
- a symbolic descriptor of this constant
- See Also:
-
name
Utf8Entry name()Returns theUtf8Entry
referred by this structure. If the value of the UTF8 starts with a[
, this represents an array type and the value is a descriptor string; otherwise, this represents a class or interface and the value is the internal form of a binary name.- Returns:
- the
Utf8Entry
referred by this structure - See Also:
-
asInternalName
String asInternalName()Returns the represented reference type, as the internal form of a binary name or an array descriptor string. This is a shortcut forname().stringValue()
.- Returns:
- the represented reference type, as the internal form of a binary name or an array descriptor string
-
asSymbol
ClassDesc asSymbol()Returns the represented reference type, as a symbolic descriptor. The returned descriptor is never primitive.- API Note:
- If only symbol equivalence is desired,
matches
should be used. It requires reduced parsing and can improveclass
file reading performance. - Returns:
- the represented reference type, as a symbolic descriptor
- See Also:
-
matches
Returns whether this entry describes the given reference type. Returnsfalse
ifdesc
is primitive.- Parameters:
desc
- the reference type- Returns:
- whether this entry describes the given reference type
- Since:
- 25
-