Интерфейс ClassModel
- Все суперинтерфейсы:
AttributedElement, ClassFileElement, CompoundElement<ClassElement>, Iterable<ClassElement>
public sealed interface ClassModel extends CompoundElement<ClassElement>, AttributedElement
class. Файл class можно рассматривать как совокупность элементов ClassElement или обращаться к нему произвольным образом с помощью методов доступа, если требуются только отдельные части файла
class. Чтобы получить ClassModel, используйте ClassFile.parse(byte[]), который разбирает двоичные данные файла
class и преобразует их в модель.
Чтобы создать файл class, используйте ClassFile.build(ClassDesc, Consumer). ClassFile.transformClass(ClassModel, ClassTransform) позволяет создать новый класс, выборочно обрабатывая элементы исходного класса и передавая результаты конструктору класса.
Класс содержит атрибуты, большинство из которых доступны в виде элементов-членов. BootstrapMethodsAttribute можно получить только с помощью явного чтения атрибутов, поскольку он моделируется как часть пула констант.
- См. Спецификацию виртуальной машины Java:
- 4.1 Структура
ClassFile
- Начиная с:
- 24
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ConstantPool |
constantPool() |
Возвращает пул констант этого класса. |
List |
fields() |
Возвращает поля этого класса. |
AccessFlags |
flags() |
Возвращает флаги доступа. |
List |
interfaces() |
Возвращает интерфейсы, реализованные этим классом. |
boolean |
isModuleInfo() |
Возвращает, является ли этот файл class дескриптором модуля. |
int |
majorVersion() |
Возвращает старшую версию этого класса. |
List |
methods() |
Возвращает методы этого класса. |
int |
minorVersion() |
Возвращает младшую версию этого класса. |
Optional |
superclass() |
Возвращает суперкласс этого класса, если он есть. |
ClassEntry |
thisClass() |
Возвращает запись пула констант, описывающую имя этого класса. |
Методы, объявленные в интерфейсе AttributedElement
attributes, findAttribute, findAttributes
Методы, объявленные в интерфейсе CompoundElement
elementList, elementStream, forEach, iterator, toDebugString
Методы, объявленные в интерфейсе Iterable
spliterator
Подробное описание методов
constantPool
ConstantPool constantPool()
- Возвращает:
- пул констант этого класса
- См. также:
flags
AccessFlags flags()
- Возвращает:
- флаги доступа
- См. также:
thisClass
ClassEntry thisClass()
- Возвращает:
- запись пула констант, описывающую имя этого класса
majorVersion
int majorVersion()
[0, 65535].- Возвращает:
- старшую версию этого класса
- См. также:
minorVersion
int minorVersion()
[0, 65535].- Возвращает:
- младшую версию этого класса
- См. также:
fields
List<FieldModel> fields()
- Возвращает:
- поля этого класса
methods
List<MethodModel> methods()
- Возвращает:
- методы этого класса
superclass
Optional<ClassEntry> superclass()
class может не иметь суперкласса, если он представляет собой дескриптор модуля или класс Object; в противном случае суперкласс должен быть. Если это интерфейс, суперклассом должен быть Object.- Возвращает:
- суперкласс этого класса, если он есть
- См. также:
interfaces
List<ClassEntry> interfaces()
- Возвращает:
- интерфейсы, реализованные этим классом
- См. также:
isModuleInfo
boolean isModuleInfo()
class дескриптором модуля.- Возвращает:
- является ли этот файл
classдескриптором модуля - См. также:
© 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