Spec-Zone.ru › OpenJDK 25

Интерфейс 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
См. также:
  • ClassFile.parse(byte[])
  • ClassTransform

Краткое описание методов

Модификатор и тип Метод Описание
ConstantPool constantPool()
Возвращает пул констант этого класса.
List<FieldModel> fields()
Возвращает поля этого класса.
AccessFlags flags()
Возвращает флаги доступа.
List<ClassEntry> interfaces()
Возвращает интерфейсы, реализованные этим классом.
boolean isModuleInfo()
Возвращает, является ли этот файл class дескриптором модуля.
int majorVersion()
Возвращает старшую версию этого класса.
List<MethodModel> methods()
Возвращает методы этого класса.
int minorVersion()
Возвращает младшую версию этого класса.
Optional<ClassEntry> superclass()
Возвращает суперкласс этого класса, если он есть.
ClassEntry thisClass()
Возвращает запись пула констант, описывающую имя этого класса.

Методы, объявленные в интерфейсе AttributedElement

attributes, findAttribute, findAttributes

Методы, объявленные в интерфейсе CompoundElement

elementList, elementStream, forEach, iterator, toDebugString

Методы, объявленные в интерфейсе Iterable

spliterator

Подробное описание методов

constantPool

ConstantPool constantPool()
Возвращает пул констант этого класса.
Возвращает:
пул констант этого класса
См. также:
  • ConstantPoolBuilder.of(ClassModel)

flags

AccessFlags flags()
Возвращает флаги доступа.
Возвращает:
флаги доступа
См. также:
  • AccessFlag.Location.CLASS

thisClass

ClassEntry thisClass()
Возвращает запись пула констант, описывающую имя этого класса.
Возвращает:
запись пула констант, описывающую имя этого класса

majorVersion

int majorVersion()
Возвращает старшую версию этого класса. Она находится в диапазоне беззнакового short, [0, 65535].
Возвращает:
старшую версию этого класса
См. также:
  • ClassFileVersion

minorVersion

int minorVersion()
Возвращает младшую версию этого класса. Она находится в диапазоне беззнакового short, [0, 65535].
Возвращает:
младшую версию этого класса
См. также:
  • ClassFileVersion

fields

List<FieldModel> fields()
Возвращает поля этого класса.
Возвращает:
поля этого класса

methods

List<MethodModel> methods()
Возвращает методы этого класса.
Возвращает:
методы этого класса

superclass

Optional<ClassEntry> superclass()
Возвращает суперкласс этого класса, если он есть. Этот файл class может не иметь суперкласса, если он представляет собой дескриптор модуля или класс Object; в противном случае суперкласс должен быть. Если это интерфейс, суперклассом должен быть Object.
Возвращает:
суперкласс этого класса, если он есть
См. также:
  • Superclass

interfaces

List<ClassEntry> interfaces()
Возвращает интерфейсы, реализованные этим классом.
Возвращает:
интерфейсы, реализованные этим классом
См. также:
  • Interfaces

isModuleInfo

boolean isModuleInfo()
Возвращает, является ли этот файл class дескриптором модуля.
Возвращает:
является ли этот файл class дескриптором модуля
См. также:
  • ClassFile.buildModule(ModuleAttribute, Consumer)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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