Spec-Zone.ru › OpenJDK 27

Интерфейс ConstantInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
Все известные подинтерфейсы:
ConstantInstruction.ArgumentConstantInstruction, ConstantInstruction.IntrinsicConstantInstruction, ConstantInstruction.LoadConstantInstruction
public sealed interface ConstantInstruction extends Instruction permits ConstantInstruction.IntrinsicConstantInstruction, ConstantInstruction.ArgumentConstantInstruction, ConstantInstruction.LoadConstantInstruction
Моделирует инструкцию загрузки константы в массиве code атрибута Code, включая «встроенные», «аргументные» и «загружающие» инструкции констант. Соответствующие коды операций имеют тип Opcode.Kind.CONSTANT. Передаётся как CodeElement при обходе элементов CodeModel.

Загружаемое значение константы символически представлено как ConstantDesc:

ConstantInstruction(ConstantDesc constantValue)
Граф иерархии запечатанных классов:
Sealed class hierarchy graph for ConstantInstructionSealed class hierarchy graph for ConstantInstruction
Начиная с:
24
См. также:
  • Opcode.Kind.CONSTANT
  • CodeBuilder::loadConstant

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

Модификатор и тип Интерфейс Описание
static interface  ConstantInstruction.ArgumentConstantInstruction
Моделирует инструкцию «аргументная константа», которая непосредственно кодирует значение константы в инструкции.
static interface  ConstantInstruction.IntrinsicConstantInstruction
Моделирует инструкцию «встроенная константа», которая кодирует значение константы в своём коде операции.
static interface  ConstantInstruction.LoadConstantInstruction
Моделирует инструкцию «загрузка константы», которая кодирует значение константы в пуле констант.

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

Модификатор и тип Метод Описание
ConstantDesc constantValue()
Возвращает значение константы.
static ConstantInstruction.ArgumentConstantInstruction ofArgument(Opcode op, int value)
Возвращает инструкцию аргументной константы.
static ConstantInstruction.IntrinsicConstantInstruction ofIntrinsic(Opcode op)
Возвращает инструкцию встроенной константы.
static ConstantInstruction.LoadConstantInstruction ofLoad(Opcode op, LoadableConstantEntry constant)
Возвращает инструкцию загрузки константы.
TypeKind typeKind()
Возвращает вычислительный тип константы.

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

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

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

constantValue

ConstantDesc constantValue()
Возвращает значение константы.
Возвращает:
значение константы

typeKind

TypeKind typeKind()
Возвращает вычислительный тип константы. Он определяется на основе constantValue.
Возвращает:
вычислительный тип константы

ofIntrinsic

static ConstantInstruction.IntrinsicConstantInstruction ofIntrinsic(Opcode op)
Возвращает инструкцию встроенной константы.
Параметры:
op — код операции для конкретного типа инструкции встроенной константы; его тип должен быть Opcode.Kind.CONSTANT
Возвращает:
инструкцию встроенной константы
Вызывает исключение:
IllegalArgumentException — если код операции не представляет константу с неявным значением

ofArgument

static ConstantInstruction.ArgumentConstantInstruction ofArgument(Opcode op, int value)
Возвращает инструкцию аргументной константы.

value должно находиться в диапазоне от byte до [-128, 127] для Opcode.BIPUSH и в диапазоне от short до [-32768, 32767] для Opcode.SIPUSH.

Параметры:
op — код операции для конкретного типа инструкции аргументной константы; им должен быть Opcode.BIPUSH или Opcode.SIPUSH
value — значение константы
Возвращает:
инструкцию аргументной константы
Вызывает исключение:
IllegalArgumentException — если код операции не является Opcode.BIPUSH или Opcode.SIPUSH либо если значение константы выходит за допустимый для кода операции диапазон

ofLoad

static ConstantInstruction.LoadConstantInstruction ofLoad(Opcode op, LoadableConstantEntry constant)
Возвращает инструкцию загрузки константы.
Параметры:
op — код операции для конкретного типа инструкции загрузки константы; его тип должен быть Opcode.Kind.CONSTANT
constant — значение константы
Возвращает:
инструкцию загрузки константы
Вызывает исключение:
IllegalArgumentException — если код операции не является Opcode.LDC, Opcode.LDC_W или Opcode.LDC2_W

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