インタフェースStoreInstruction

すべてのスーパー・インタフェース:
ClassFileElement, CodeElement, Instruction

public sealed interface StoreInstruction extends Instruction
ローカル変数ストア命令をCode属性のcode配列にモデル化します。 対応するopcodesのkindOpcode.Kind.STOREです。 CodeModelの要素をトラバースするときに、CodeElementとして提供されます。

ローカル変数ストア命令はコンポジットです:

StoreInstruction(
    TypeKind typeKind,
    int slot
)
ここで、TypeKindcomputationalslot[0, 65535]内にあります。

astoreシリーズの命令(reference型のストア命令)は、中断された「ジャンプ・サブルーチンの指示」からreturnAddress型に対しても動作できます。

導入されたバージョン:
24
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    of(Opcode op, int slot)
    ローカル変数ストア命令を返します。
    of(TypeKind kind, int slot)
    ローカル変数ストア命令を返します。
    int
    格納先のローカル変数スロットを返します。
    格納する値の「計算タイプ」を返します。

    インタフェースjava.lang.classfile.Instructionで宣言されたメソッド

    opcode, sizeInBytes
  • メソッドの詳細

    • slot

      int slot()
      格納先のローカル変数スロットを返します。 値は[0, 65535]内にあります。
      戻り値:
      格納先のローカル変数スロット
    • typeKind

      TypeKind typeKind()
      格納する値の「計算タイプ」を返します。 reference型のストア命令は、reference型のロード命令には適用されないreturnAddress型でも動作します。
      戻り値:
      格納される値の「計算タイプ」
    • of

      static StoreInstruction of(TypeKind kind, int slot)
      ローカル変数ストア命令を返します。kindは、その計算型に対するconvertedです。slotは、[0, 65535]内である必要があります。
      パラメータ:
      kind - 格納される値のタイプ
      slot - 格納先のローカル変数スロット
      戻り値:
      ローカル変数ストア命令
      スロー:
      IllegalArgumentException - kindvoidの場合、またはslotが範囲外の場合
    • of

      static StoreInstruction of(Opcode op, int slot)
      ローカル変数ストア命令を返します。

      slotの範囲は、opとそのsizeによって制限されます:

      • opのサイズが1の場合、slotはopcodeによって暗黙的に示されるスロット値である必要があります。
      • opのサイズが2の場合、slot[0, 255]内に存在する必要があります。
      • opのサイズが4の場合、slot[0, 65535]内に存在する必要があります。

      APIのノート:
      明示的なop引数を使用すると、より最適化されたストア命令でslotをエンコードできる場合に、wideまたは通常のストア命令を作成できます。
      パラメータ:
      op - 特定のタイプのストア命令のopcode。Opcode.Kind.STOREの種類である必要があります
      slot - 格納先のローカル変数スロット
      戻り値:
      ローカル変数ストア命令
      スロー:
      IllegalArgumentException - opcodeの種類がOpcode.Kind.STOREでないか、slotが範囲外の場合