Перечисление 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum
Enum.EnumDesc<E extends Enum<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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/ClassFile.StackMapsOption.html