Spec-Zone.ru › OpenJDK 24

Интерфейс 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()
Возвращает вычислительный тип константы.

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

opcode, 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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/instruction/ConstantInstruction.html

Spec-Zone.ru

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