Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List |
exceptionHandlers() |
Возвращает таблицу исключений метода. |
Optional |
parent() |
Возвращает содержащий метод, если он известен. |
Методы, объявленные в интерфейсе AttributedElement
attributes, findAttribute, findAttributes
Методы, объявленные в интерфейсе CompoundElement
elementList, elementStream, forEach, iterator, toDebugString
Методы, объявленные в интерфейсе Iterable
spliterator
Подробное описание методов
parent
Optional<MethodModel> parent()
- Возвращает:
- содержащий метод, если он известен
exceptionHandlers
List<ExceptionCatch> exceptionHandlers()
ExceptionCatch.- Возвращает:
- таблицу исключений метода
© 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