Spec-Zone.ru › OpenJDK 27

Интерфейс BranchInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
public sealed interface BranchInstruction extends Instruction
Представляет команду ветвления (условную или безусловную) в массиве code атрибута Code. Соответствующие коды операций имеют вид Opcode.Kind.BRANCH. Предоставляется как CodeElement при обходе элементов CodeModel.

Команда ветвления является составной:

BranchInstruction(
    Opcode opcode,
    Label target
)

Из-за физических ограничений некоторые типы команд не могут кодировать метки, расположенные слишком далеко в списке элементов кода. В таких случаях параметр ClassFile.ShortJumpsOption определяет, как CodeBuilder записывает недопустимую модель команды ветвления.

Начиная с:
24
См. также:
  • Opcode.Kind.BRANCH
  • CodeBuilder::branch
  • ClassFile.ShortJumpsOption

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

Модификатор и тип Метод Описание
static BranchInstruction of(Opcode op, Label target)
Возвращает команду ветвления.
Label target()
Возвращает цель перехода этой команды.

Методы, объявленные в интерфейсе Instruction

opcode, sizeInBytes
Модификатор и тип Метод Описание
Opcode opcode()
Возвращает операцию этой команды.
int sizeInBytes()
Возвращает размер этой команды в байтах.

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

target

Label target()
Возвращает цель перехода этой команды.
Возвращает:
цель перехода этой команды

of

static BranchInstruction of(Opcode op, Label target)
Возвращает команду ветвления.
Параметры:
op — код операции для конкретного типа команды ветвления; он должен иметь вид Opcode.Kind.BRANCH
target — цель перехода
Возвращает:
команду ветвления
Вызывает исключение:
IllegalArgumentException — если вид кода операции не равен Opcode.Kind.BRANCH

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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