Spec-Zone.ru › OpenJDK 25

Interface ClassModel

All Superinterfaces:
AttributedElement, ClassFileElement, CompoundElement<ClassElement>, Iterable<ClassElement>
public sealed interface ClassModel extends CompoundElement<ClassElement>, AttributedElement
Models a class file. A class file can be viewed as a composition of ClassElements, 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:
  • ClassFile.parse(byte[])
  • ClassTransform

Method Summary

Modifier and Type Method Description
ConstantPool constantPool()
Returns the constant pool for this class.
List<FieldModel> fields()
Returns the fields of this class.
AccessFlags flags()
Returns the access flags.
List<ClassEntry> interfaces()
Returns the interfaces implemented by this class.
boolean isModuleInfo()
Returns whether this class file is a module descriptor.
int majorVersion()
Returns the major version of this class.
List<MethodModel> methods()
Returns the methods of this class.
int minorVersion()
Returns the minor version of this class.
Optional<ClassEntry> superclass()
Returns the superclass of this class, if there is one.
ClassEntry thisClass()
Returns the constant pool entry describing the name of this class.

Methods declared in interface AttributedElement

attributes, findAttribute, findAttributes

Methods declared in interface CompoundElement

elementList, elementStream, forEach, iterator, toDebugString

Methods declared in interface Iterable

spliterator

Method Details

constantPool

ConstantPool constantPool()
Returns the constant pool for this class.
Returns:
the constant pool for this class
See Also:
  • ConstantPoolBuilder.of(ClassModel)

flags

AccessFlags flags()
Returns the access flags.
Returns:
the access flags
See Also:
  • AccessFlag.Location.CLASS

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:
  • ClassFileVersion

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:
  • ClassFileVersion

fields

List<FieldModel> fields()
Returns the fields of this class.
Returns:
the fields of this class

methods

List<MethodModel> methods()
Returns the methods of this class.
Returns:
the methods of this class

superclass

Optional<ClassEntry> superclass()
Returns the superclass of this class, if there is one. This class file may have no superclass if this represents a module descriptor or the Object class; otherwise, it must have a superclass. If this is an interface, the superclass must be Object.
Returns:
the superclass of this class, if there is one
See Also:
  • Superclass

interfaces

List<ClassEntry> interfaces()
Returns the interfaces implemented by this class.
Returns:
the interfaces implemented by this class
See Also:
  • Interfaces

isModuleInfo

boolean isModuleInfo()
Returns whether this class file is a module descriptor.
Returns:
whether this class file is a module descriptor
See Also:
  • ClassFile.buildModule(ModuleAttribute, Consumer)

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2025, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

© 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/ClassModel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API