# Interface ArrayStoreInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

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

An array store instruction is composite:

    ArrayStoreInstruction(TypeKind typeKind)

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

Since:
  24
See Also:
  - `Opcode.Kind.ARRAY_STORE`
  - `CodeBuilder::arrayStore`

## Method Summary

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

### Methods declared in interface Instruction

`opcode, sizeInBytes`

## Method Details

### typeKind

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

Returns:
  the component type of the array

### of

static ArrayStoreInstruction of(Opcode op)
Returns an array store instruction.

Parameters:
  `op` - the opcode for the specific type of array store instruction, which must be of kind `Opcode.Kind.ARRAY_STORE`
Returns:
  an array store instruction
Throws:
  `IllegalArgumentException` - if the opcode kind is not `Opcode.Kind.ARRAY_STORE`