Spec-Zone.ru › OpenJDK 24

Перечисление ClassFile.StackMapsOption

java.lang.Object
java.lang.Enum<ClassFile.StackMapsOption>
java.lang.classfile.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
См. также:
  • StackMapTableAttribute
  • ClassFile.DeadCodeOption

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum

Enum.EnumDesc<E extends Enum<E>>

Краткое описание констант перечисления

Константа перечисления Описание
DROP_STACK_MAPS
Не запускать генерацию карты стека.
GENERATE_STACK_MAPS
Принудительно запускает генерацию карты стека.
STACK_MAPS_WHEN_REQUIRED
Генерировать карты стека или повторно использовать существующие, если они совместимы.

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

Модификатор и тип Метод Описание
static ClassFile.StackMapsOption valueOf(String name)
Возвращает константу перечисления данного класса с указанным именем.
static ClassFile.StackMapsOption[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Подробное описание констант перечисления

STACK_MAPS_WHEN_REQUIRED

public static final ClassFile.StackMapsOption STACK_MAPS_WHEN_REQUIRED
Генерировать карты стека или повторно использовать существующие, если они совместимы. Карты стека присутствуют в основных версиях 50 и выше. Для этих версий 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

Spec-Zone.ru

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