Spec-Zone.ru › OpenJDK 27

Интерфейс CodeAttribute

Все суперинтерфейсы:
Attribute<CodeAttribute>, AttributedElement, ClassFileElement, CodeModel, CompoundElement<CodeElement>, Iterable<CodeElement>, MethodElement
public sealed interface CodeAttribute extends Attribute<CodeAttribute>, CodeModel
Моделирует атрибут Code (JVMS §4.7.3), который содержит байт-код этого метода.

Этот атрибут встречается только у методов и не допускает нескольких экземпляров в методе. Он зависит от данных пула констант.

Этот атрибут появился в версии 1.0.2 платформы Java, старшая версия 45.

Примечание к API:
CodeAttribute моделирует свойства атрибута Code, прочитанного из файлов class. При общем преобразовании файлов class следует обрабатывать и обходить CodeModel при обходе MethodModel, чтобы поддерживать преобразование создаваемых в данный момент атрибутов Code.
См. Спецификацию виртуальной машины Java:
4.7.3 Атрибут Code
Начиная с версии:
24
См. также:
  • Attributes.code()
  • CodeModel

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

Модификатор и тип Метод Описание
byte[] codeArray()
Возвращает байты (байт-код) массива кода.
int codeLength()
Возвращает длину массива кода в байтах.
int labelToBci(Label label)
Возвращает позицию label в codeArray.
int maxLocals()
Возвращает максимальный размер таблицы локальных переменных.
int maxStack()
Возвращает максимальный размер стека операндов.

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

attributeMapper, attributeName
Модификатор и тип Метод Описание
AttributeMapper<CodeAttribute> attributeMapper()
Возвращает AttributeMapper, связанный с этим атрибутом.
Utf8Entry attributeName()
Возвращает имя атрибута.

Методы, объявленные в интерфейсе 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)
Находит атрибуты по имени.

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

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

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

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

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

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

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

maxLocals

int maxLocals()
Возвращает максимальный размер таблицы локальных переменных.
Возвращает:
максимальный размер таблицы локальных переменных

maxStack

int maxStack()
Возвращает максимальный размер стека операндов.
Возвращает:
максимальный размер стека операндов

codeLength

int codeLength()
Возвращает длину массива кода в байтах.
Возвращает:
длину массива кода в байтах

codeArray

byte[] codeArray()
Возвращает байты (байт-код) массива кода.
Возвращает:
байты (байт-код) массива кода

labelToBci

int labelToBci(Label label)
Возвращает позицию label в codeArray. Метка представляет собой курсор, указывающий непосредственно перед возвращаемым индексом в массиве code.
Параметры:
label — маркер позиции в этом CodeAttribute
Возвращает:
позицию label в codeArray
Выбрасывает:
IllegalArgumentException — если label не относится к этому атрибуту

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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