Spec-Zone.ru › OpenJDK 24

Интерфейс 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(java.util.function.Consumer<? super java.lang.classfile.CodeBuilder>) — основной способ построения моделей кода. MethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform) и CodeBuilder.transforming(java.lang.classfile.CodeTransform, java.util.function.Consumer<java.lang.classfile.CodeBuilder>) позволяют создавать новые атрибуты 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()
Возвращает метод-оболочку, если известен.

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

attributes, findAttribute, findAttributes

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

elementList, elementStream, forEach, iterator, toDebugString

Методы, объявленные в интерфейсе java.lang.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 США.
Все права защищены. Использование регулируется лицензионными условиями и политикой распространения документации.
DRAFT 24-ea+36-Debian-1

© 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/CodeModel.html

Spec-Zone.ru

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