Spec-Zone.ru › OpenJDK 25

Enum Class 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

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

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

Enum.EnumDesc<E>

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

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

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

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

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

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

Методы, объявленные в классе 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/ClassFile.StackMapsOption.html

Spec-Zone.ru

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