Spec-Zone.ru › OpenJDK 25

Интерфейс CodeModel

Все суперинтерфейсы:
AttributedElement, ClassFileElement, CompoundElement<CodeElement>, Iterable<CodeElement>, MethodElement
Все известные подинтерфейсы:
CodeAttribute
public sealed interface CodeModel extends CompoundElement<CodeElement>, AttributedElement, MethodElement permits CodeAttribute (not exhaustive)
Моделирует тело метода (атрибут Code). Атрибут Code рассматривается как композиция элементов CodeElement, которые являются единственным способом доступа к элементам Instruction; порядок элементов модели кода имеет значение.

CodeModel получается из MethodModel.code() или при обходе элементов метода.

Основным способом создания моделей кода является MethodBuilder.withCode(Consumer). MethodBuilder.transformCode(CodeModel, CodeTransform) и CodeBuilder.transforming(CodeTransform, Consumer) позволяют создавать новые атрибуты Code, выборочно обрабатывая исходные элементы кода и передавая результаты построителю кода.

Атрибут Code содержит атрибуты, однако обычно они не являются элементами метода, а разлагаются на PseudoInstruction, доступные в соответствии с параметрами ClassFile.DeadLabelsOption, ClassFile.DebugElementsOption и ClassFile.LineNumbersOption. Доступ к StackMapTableAttribute возможен только через явное чтение атрибутов, поскольку он считается производным свойством тела кода.

См. Спецификацию виртуальной машины Java:
4.7.3 Атрибут Code
Начиная с версии:
24
См. также:
  • MethodModel.code()
  • CodeTransform
  • CodeAttribute

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

Модификатор и тип Метод Описание
List<ExceptionCatch> exceptionHandlers()
Возвращает таблицу исключений метода.
Optional<MethodModel> parent()
Возвращает содержащий метод, если он известен.

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

attributes, findAttribute, findAttributes

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

elementList, elementStream, forEach, iterator, toDebugString

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

spliterator

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

parent

Optional<MethodModel> parent()
Возвращает содержащий метод, если он известен.
Возвращает:
содержащий метод, если он известен

exceptionHandlers

List<ExceptionCatch> exceptionHandlers()
Возвращает таблицу исключений метода. В потоковом представлении таблица исключений также моделируется элементами ExceptionCatch.
Возвращает:
таблицу исключений метода

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/CodeModel.html

Spec-Zone.ru

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