# 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 java.lang.classfile.Instruction

`opcode, sizeInBytes`

## 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`