Spec-Zone.ru › OpenJDK 27

Интерфейс TableSwitchInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
public sealed interface TableSwitchInstruction extends Instruction
Моделирует инструкцию tableswitch в массиве code атрибута Code. Предоставляется как CodeElement при обходе элементов CodeModel.

Инструкция переключения с таблицей является составной:

TableSwitchInstruction(
    int lowValue,
    int highValue,
    Label defaultTarget,
    List<SwitchCase> cases
)

При чтении файлов class в cases могут отсутствовать случаи, дублирующие цель по умолчанию. Список отсортирован по возрастанию значения caseValue.

При записи в файл class порядок элементов в списке cases не имеет значения, поскольку для записей переключения с таблицей в физическом представлении допустим только один порядок. Обработка элементов в cases, значение которых меньше lowValue или больше highValue, а также элементов со значениями, дублирующими значения других элементов, не определена.

См. Спецификацию виртуальной машины Java:
6.5.tableswitch tableswitch
Начиная с версии:
24
См. также:
  • Opcode.Kind.TABLE_SWITCH
  • CodeBuilder::tableswitch

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

Модификатор и тип Метод Описание
List<SwitchCase> cases()
Возвращает случаи переключения.
Label defaultTarget()
Возвращает цель переключения по умолчанию.
int highValue()
Возвращает верхнее значение диапазона целей переключения включительно.
int lowValue()
Возвращает нижнее значение диапазона целей переключения включительно.
static TableSwitchInstruction of(int lowValue, int highValue, Label defaultTarget, List<SwitchCase> cases)
Возвращает инструкцию переключения с таблицей.

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

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

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

lowValue

int lowValue()
Возвращает нижнее значение диапазона целей переключения включительно.
Возвращает:
нижнее значение диапазона целей переключения включительно

highValue

int highValue()
Возвращает верхнее значение диапазона целей переключения включительно.
Возвращает:
верхнее значение диапазона целей переключения включительно

defaultTarget

Label defaultTarget()
Возвращает цель переключения по умолчанию.
Возвращает:
цель переключения по умолчанию

cases

List<SwitchCase> cases()
Возвращает случаи переключения.
Возвращает:
случаи переключения

of

static TableSwitchInstruction of(int lowValue, int highValue, Label defaultTarget, List<SwitchCase> cases)
Возвращает инструкцию переключения с таблицей.
Параметры:
lowValue — нижнее значение диапазона целей переключения включительно
highValue — верхнее значение диапазона целей переключения включительно
defaultTarget — цель переключения по умолчанию
cases — случаи переключения; обработка дублирующихся случаев или случаев вне допустимого диапазона не определена
Возвращает:
инструкцию переключения с таблицей
Вызывает исключение:
IllegalArgumentException — если нижнее значение больше верхнего или если между нижним и верхним значениями слишком много целей

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