ArrayLoadInstruction (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile.instruction, interface: ArrayLoadInstruction
Keywords: java.lang.classfile.instruction.ArrayLoadInstruction interface

# Interface ArrayLoadInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

public sealed interface ArrayLoadInstruction extends Instruction
Models an array load instruction in the `code` array of a `Code` attribute. Corresponding opcodes have a kind of `Opcode.Kind.ARRAY_LOAD`. Delivered as a `CodeElement` when traversing the elements of a `CodeModel`.

An array load instruction is composite:

    ArrayLoadInstruction(TypeKind typeKind)

where `typeKind` is not `void`, and `boolean` is converted to `byte`.

Since:
  24
See Also:
  - `Opcode.Kind.ARRAY_LOAD`
  - `CodeBuilder::arrayLoad`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ArrayLoadInstruction`
  `of(Opcode op)`
  Returns an array load instruction.
  `TypeKind`
  `typeKind()`
  Returns the component type of the array.

  ### Methods declared in interface Instruction

  `opcode, sizeInBytes`
  Modifier and Type
  Method
  Description
  `Opcode`
  `opcode()`
  Returns the operation of this instruction.
  `int`
  `sizeInBytes()`
  Returns the size in bytes of this instruction.

- ## Method Details

  - ### typeKind

    TypeKind typeKind()
    Returns the component type of the array. The `byte` type load instruction `baload` also operates on `boolean` arrays, so this never returns `boolean`.
    Returns:
      the component type of the array

  - ### of

    static ArrayLoadInstruction of(Opcode op)
    Returns an array load instruction.
    Parameters:
      `op` - the opcode for the specific type of array load instruction, which must be of kind `Opcode.Kind.ARRAY_LOAD`
    Returns:
      an array load instruction
    Throws:
      `IllegalArgumentException` - if the opcode kind is not `Opcode.Kind.ARRAY_LOAD`