Interface ClassModel
- All Superinterfaces:
AttributedElement
,ClassFileElement
,CompoundElement<ClassElement>
,Iterable<ClassElement>
Models a
class
file. A class
file can be viewed as a
composition of ClassElement
s, or by
random access via accessor methods if only specific parts of the
class
file is needed.
Use ClassFile.parse(byte[])
, which parses the binary data of a
class
file into a model, to obtain a ClassModel
.
To construct a class
file, use ClassFile.build(ClassDesc, Consumer)
. ClassFile.transformClass(ClassModel, ClassTransform)
allows creating a new class by selectively processing the original class
elements and directing the results to a class builder.
A class holds attributes, most of which are accessible as member elements.
BootstrapMethodsAttribute
can only be accessed via explicit attribute reading, as it is modeled as part of
the constant pool.
- See Java Virtual Machine Specification:
-
4.1 The
ClassFile
Structure - Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns the constant pool for this class.fields()
Returns the fields of this class.flags()
Returns the access flags.Returns the interfaces implemented by this class.boolean
Returns whether thisclass
file is a module descriptor.int
Returns the major version of this class.methods()
Returns the methods of this class.int
Returns the minor version of this class.Returns the superclass of this class, if there is one.Returns the constant pool entry describing the name of this class.Methods declared in interface java.lang.classfile.AttributedElement
attributes, findAttribute, findAttributes
Methods declared in interface java.lang.classfile.CompoundElement
elementList, elementStream, forEach, iterator, toDebugString
Methods declared in interface java.lang.Iterable
spliterator
-
Method Details
-
constantPool
ConstantPool constantPool()Returns the constant pool for this class.- Returns:
- the constant pool for this class
- See Also:
-
flags
-
thisClass
ClassEntry thisClass()Returns the constant pool entry describing the name of this class.- Returns:
- the constant pool entry describing the name of this class
-
majorVersion
int majorVersion()Returns the major version of this class. It is in the range of unsigned short,[0, 65535]
.- Returns:
- the major version of this class
- See Also:
-
minorVersion
int minorVersion()Returns the minor version of this class. It is in the range of unsigned short,[0, 65535]
.- Returns:
- the minor version of this class
- See Also:
-
fields
-
methods
-
superclass
Optional<ClassEntry> superclass()Returns the superclass of this class, if there is one. Thisclass
file may have no superclass if this represents a module descriptor or theObject
class; otherwise, it must have a superclass. If this is an interface, the superclass must beObject
.- Returns:
- the superclass of this class, if there is one
- See Also:
-
interfaces
List<ClassEntry> interfaces()Returns the interfaces implemented by this class.- Returns:
- the interfaces implemented by this class
- See Also:
-
isModuleInfo
boolean isModuleInfo()Returns whether thisclass
file is a module descriptor.- Returns:
- whether this
class
file is a module descriptor - See Also:
-