Interface ClassModel
- All Superinterfaces:
AttributedElement
,ClassFileElement
,CompoundElement<ClassElement>
,Iterable<ClassElement>
Models a
class
file. Aclass
file can be viewed as acomposition ofClassElement
s, or by random access via accessor methods if only specific parts of the class
file is needed. UseClassFile.parse(byte[])
, which parses the binary data of a class
file into a model, to obtain aClassModel
.
To construct aclass
file, useClassFile.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 viaexplicit attribute reading, as it is modeled as part of theconstant pool.
- SeeJava 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 amodule 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: