Spec-Zone.ru › OpenJDK 24

Интерфейс 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 Virtual Machine:
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()
Возвращает запись константного пула, описывающую имя этого класса.

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

attributes, findAttribute, findAttributes

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

elementList, elementStream, forEach, iterator, toDebugString

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

spliterator

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

constantPool

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

flags

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

thisClass

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

majorVersion

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

minorVersion

int minorVersion()
Возвращает второстепенную версию этого класса. Она находится в диапазоне unsigned 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)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/ClassModel.html

Spec-Zone.ru

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