Enum Class ClassFile.StackMapsOption
- Все реализованные интерфейсы:
Serializable, ClassFile.Option, Comparable<ClassFile.StackMapsOption>, Constable
- Охватывающий интерфейс:
ClassFile
public static enum ClassFile.StackMapsOption extends Enum<ClassFile.StackMapsOption> implements ClassFile.Option
STACK_MAPS_WHEN_REQUIRED: карты стека генерируются или повторно используются, если они совместимы. StackMapTableAttribute является производным свойством атрибута Code, позволяющим виртуальной машине Java выполнять проверку за один проход. Поэтому он не моделируется как часть CodeModel, а вычисляется по требованию при генерации карт стека.
Генерация карт стека может завершиться ошибкой IllegalArgumentException, если имеется недостижимый код или инструкции устаревших подпрограмм перехода. При использовании параметра DROP_STACK_MAPS пользователь может предоставить собственные карты стека, передав StackMapTableAttribute в CodeBuilder.
- См. Спецификацию виртуальной машины Java:
- 4.10.1 Проверка с помощью проверки типов
- Начиная с версии:
- 24
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
DROP_STACK_MAPS |
Не выполнять генерацию карт стека. |
GENERATE_STACK_MAPS |
Принудительно выполнять генерацию карт стека. |
STACK_MAPS_WHEN_REQUIRED |
Генерировать карты стека или повторно использовать существующие, если они совместимы. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static ClassFile.StackMapsOption |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static ClassFile.StackMapsOption[] |
values() |
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления. |
Подробное описание констант перечисления
STACK_MAPS_WHEN_REQUIRED
public static final ClassFile.StackMapsOption STACK_MAPS_WHEN_REQUIRED
CodeBuilder пытается повторно использовать совместимую информацию о картах стека, если после преобразования массив байткода и обработчики исключений остаются совместимыми; в противном случае запускается генерация карт стека. Однако при основной версии 50 немедленная ошибка не возникает, что позволяет инструкциям подпрограмм перехода, несовместимым с картами стека, присутствовать в массиве code.GENERATE_STACK_MAPS
public static final ClassFile.StackMapsOption GENERATE_STACK_MAPS
DROP_STACK_MAPS
public static final ClassFile.StackMapsOption DROP_STACK_MAPS
StackMapTableAttribute в CodeBuilder; иначе сгенерированный код не пройдет проверку (JVMS 4.10.1). Этот параметр необходим, чтобы учитывались предоставленные пользователем StackMapTableAttribute. Существующие карты стека в атрибуте Code можно повторно использовать следующим образом с этим параметром:
CodeAttribute code = method.findAttribute(Attributes.code()).orElseThrow();
// Note that StackMapTable may be absent, representing code with no branching
code.findAttribute(Attributes.stackMapTable()).ifPresent(cob);
Подробное описание методов
values
public static ClassFile.StackMapsOption[] values()
- Возвращает:
- массив, содержащий константы этого класса-перечисления в порядке их объявления
valueOf
public static ClassFile.StackMapsOption valueOf(String name)
- Параметры:
-
name— имя возвращаемой константы перечисления. - Возвращает:
- константа перечисления с указанным именем
- Выбрасывает:
-
IllegalArgumentException— если в этом классе-перечислении нет константы с указанным именем -
NullPointerException— если аргумент равен null
© 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/ClassFile.StackMapsOption.html