Spec-Zone.ru › OpenJDK 27

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

java.lang.Object
java.lang.Enum<ClassFile.ShortJumpsOption>
java.lang.classfile.ClassFile.ShortJumpsOption
Все реализованные интерфейсы:
Serializable, ClassFile.Option, Comparable<ClassFile.ShortJumpsOption>, Constable
Внешний интерфейс:
ClassFile
public static enum ClassFile.ShortJumpsOption extends Enum<ClassFile.ShortJumpsOption> implements ClassFile.Option
Параметр, определяющий, следует ли автоматически при необходимости заменять короткие переходы эквивалентными инструкциями. По умолчанию используется FIX_SHORT_JUMPS, то есть выполняется автоматическая замена.

Из-за физических ограничений некоторые типы инструкций не могут кодировать определённые цели перехода со смещениями bci меньше -32768 или больше 32767, поскольку для кодирования такого смещения они используют s2. (Максимальная длина массива code составляет 65535.) Такие типы инструкций называются «короткими переходами».

Отключение замены позволяет обеспечить физическую точность созданного файла class и в некоторых случаях избежать затрат на неудачную первую попытку при переполнении прямых переходов, если созданный файл class стабилен.

С версии:
24
См. также:
  • BranchInstruction
  • DiscontinuedInstruction.JsrInstruction

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

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

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

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

Константа перечисления Описание
FAIL_ON_SHORT_JUMPS
Выбрасывает IllegalArgumentException, если происходит переполнение короткого перехода.
FIX_SHORT_JUMPS
При необходимости автоматически преобразует короткие переходы в длинные.

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

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

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(ClassFile.ShortJumpsOption o)
Сравнивает это перечисление с указанным объектом для определения порядка.
final Optional<Enum.EnumDesc<ClassFile.ShortJumpsOption>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его невозможно.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело и будет удалено: этот элемент API может быть удалён в будущей версии.
Метод finalize устарел и будет удалён.
final Class<ClassFile.ShortJumpsOption> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления точно в том виде, в котором оно указано в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; первой константе присваивается порядковый номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

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

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

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

FIX_SHORT_JUMPS

public static final ClassFile.ShortJumpsOption FIX_SHORT_JUMPS
При необходимости автоматически преобразует короткие переходы в длинные.

Для недопустимой модели инструкции CodeBuilder может создать одну или несколько других инструкций, чтобы добиться того же эффекта.

FAIL_ON_SHORT_JUMPS

public static final ClassFile.ShortJumpsOption FAIL_ON_SHORT_JUMPS
Выбрасывает IllegalArgumentException, если происходит переполнение короткого перехода.

Это полезно для обеспечения физической точности созданного файла class и позволяет в некоторых случаях избежать затрат на неудачную первую попытку при переполнении прямых переходов.

Подробное описание методов

values

public static ClassFile.ShortJumpsOption[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса перечисления в порядке их объявления

valueOf

public static ClassFile.ShortJumpsOption valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Пробелы в начале или конце строки не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе перечисления нет константы с указанным именем
NullPointerException — если аргумент равен null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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