Interface ClassEntry
- All Superinterfaces:
LoadableConstantEntry, PoolEntry
public sealed interface ClassEntry extends LoadableConstantEntry
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
ClassEntryrepresents a class or interface, such asjava/lang/Stringfor theStringclass. - A field descriptor string (JVMS 4.3.2) representing an array type, if and only if this
ClassEntryrepresents an array type, such as[Ifor 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_infoStructure
- 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 Type | Method | Description |
|---|---|---|
String |
asInternalName() |
Returns the represented reference type, as the internal form of a binary name or an array descriptor string. |
ClassDesc |
asSymbol() |
Returns the represented reference type, as a symbolic descriptor. |
default ConstantDesc |
constantValue() |
Returns a symbolic descriptor of this constant. |
boolean |
matches |
Returns whether this entry describes the given reference type. |
Utf8Entry |
name() |
Returns the Utf8Entry referred by this structure. |
Methods declared in interface LoadableConstantEntry
typeKind
Methods declared in interface PoolEntry
constantPool, index, tag, width
Method Details
constantValue
default ConstantDesc constantValue()
Returns a symbolic descriptor of this constant.
This is equivalent to asSymbol().
- Specified by:
-
constantValuein interfaceLoadableConstantEntry - Returns:
- a symbolic descriptor of this constant
- See Also:
name
Utf8Entry name()
Returns the
Utf8Entry 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
Utf8Entryreferred 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 for
name().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,
matchesshould be used. It requires reduced parsing and can improveclassfile reading performance. - Returns:
- the represented reference type, as a symbolic descriptor
- See Also:
matches
boolean matches(ClassDesc desc)
Returns whether this entry describes the given reference type. Returns
false if desc is primitive.- Parameters:
-
desc- the reference type - Returns:
- whether this entry describes the given reference 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/ClassEntry.html