Spec-Zone.ru › OpenJDK 27

Интерфейс ClassModel

Все суперинтерфейсы:
AttributedElement, ClassFileElement, CompoundElement<ClassElement>, Iterable<ClassElement>
public sealed interface ClassModel extends CompoundElement<ClassElement>, AttributedElement
Моделирует файл class. Файл class можно рассматривать как композицию элементов ClassElement или получать к нему произвольный доступ с помощью методов доступа, если нужны только отдельные части файла class.

Используйте ClassFile.parse(byte[]), который анализирует двоичные данные файла class и преобразует их в модель, чтобы получить ClassModel.

Чтобы создать файл 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
Модификатор и тип Метод Описание
List<Attribute<?>> attributes()
Возвращает атрибуты этой структуры.
default <T extends Attribute<T>>
Optional<T>
findAttribute(AttributeMapper<T> attr)
Находит атрибут по имени.
default <T extends Attribute<T>>
List<T>
findAttributes(AttributeMapper<T> attr)
Находит атрибуты по имени.

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

elementList, elementStream, forEach, iterator, toDebugString
Модификатор и тип Метод Описание
default List<ClassElement> elementList()
Возвращает List, содержащий все элементы-члены этого составного элемента.
default Stream<ClassElement> elementStream()
Возвращает Stream, содержащий все элементы-члены этого составного элемента.
void forEach(Consumer<? super ClassElement> consumer)
Вызывает переданный обработчик для каждого элемента-члена этого составного элемента.
default Iterator<ClassElement> iterator()
Возвращает Iterator, описывающий все элементы-члены этого составного элемента.
default String toDebugString()
Возвращает текстовое представление составного элемента и его содержимого для отладки.

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

spliterator
Модификатор и тип Метод Описание
default Spliterator<ClassElement> spliterator()
Создаёт Spliterator для элементов, описываемых этим Iterable.

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

constantPool

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

flags

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

thisClass

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

majorVersion

int majorVersion()
Возвращает основную версию этого класса. Это значение типа u2.
Возвращает:
основную версию этого класса
См. также:
  • ClassFileVersion

minorVersion

int minorVersion()
Возвращает дополнительную версию этого класса. Это значение типа u2.
Возвращает:
дополнительную версию этого класса
См. также:
  • 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, 2026, 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.

Spec-Zone.ru

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