Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
byte[] |
codeArray() |
Возвращает байты (байт-код) массива кода. |
int |
codeLength() |
Возвращает длину массива кода в байтах. |
int |
labelToBci |
Возвращает позицию label в codeArray. |
int |
maxLocals() |
Возвращает максимальный размер таблицы локальных переменных. |
int |
maxStack() |
Возвращает максимальный размер стека операндов. |
Методы, объявленные в интерфейсе Attribute
attributeMapper, attributeName | Модификатор и тип | Метод | Описание |
|---|---|---|
AttributeMapper |
attributeMapper() |
Возвращает AttributeMapper, связанный с этим атрибутом. |
Utf8Entry |
attributeName() |
Возвращает имя атрибута. |
Методы, объявленные в интерфейсе AttributedElement
attributes, findAttribute, findAttributes | Модификатор и тип | Метод | Описание |
|---|---|---|
List |
attributes() |
Возвращает атрибуты этой структуры. |
default <T extends Attribute<T>> |
findAttribute |
Находит атрибут по имени. |
default <T extends Attribute<T>> |
findAttributes |
Находит атрибуты по имени. |
Методы, объявленные в интерфейсе CodeModel
exceptionHandlers, parent | Модификатор и тип | Метод | Описание |
|---|---|---|
List |
exceptionHandlers() |
Возвращает таблицу исключений метода. |
Optional |
parent() |
Возвращает охватывающий метод, если он известен. |
Методы, объявленные в интерфейсе CompoundElement
elementList, elementStream, forEach, iterator, toDebugString | Модификатор и тип | Метод | Описание |
|---|---|---|
default List |
elementList() |
Возвращает List, содержащий все дочерние элементы этого составного элемента. |
default Stream |
elementStream() |
Возвращает Stream, содержащий все дочерние элементы этого составного элемента. |
void |
forEach |
Вызывает предоставленный обработчик для каждого дочернего элемента этого составного элемента. |
default Iterator |
iterator() |
Возвращает Iterator, описывающий все дочерние элементы этого составного элемента. |
default String |
toDebugString() |
Возвращает текстовое представление составного элемента и его содержимого для отладки. |
Методы, объявленные в интерфейсе Iterable
spliterator | Модификатор и тип | Метод | Описание |
|---|---|---|
default Spliterator |
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не относится к этому атрибуту
© 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.