# Interface NewMultiArrayInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

public sealed interface NewMultiArrayInstruction extends Instruction
Models a `multianewarray` instruction in the `code` array of a `Code` attribute. Delivered as a `CodeElement` when traversing the elements of a `CodeModel`.

A new multi-dimensional array instruction is composite:

    NewMultiArrayInstruction(
        ClassEntry arrayType,
        int dimensions
    )

where the `arrayType` is an array class.

See Java Virtual Machine Specification:
  6.5.multianewarray multianewarray
Since:
  24
See Also:
  - `Opcode.Kind.NEW_MULTI_ARRAY`
  - `CodeBuilder::multianewarray`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ClassEntry`
  `arrayType()`
  Returns the type of the array.
  `int`
  `dimensions()`
  Returns the number of dimensions of the array.
  `static NewMultiArrayInstruction`
  `of(ClassEntry arrayTypeEntry, int dimensions)`
  Returns a new multi-dimensional array instruction.

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

  - ### arrayType

    ClassEntry arrayType()
    Returns the type of the array.
    Returns:
      the type of the array

  - ### dimensions

    int dimensions()
    Returns the number of dimensions of the array.
    Returns:
      the number of dimensions of the array

  - ### of

    static NewMultiArrayInstruction of(ClassEntry arrayTypeEntry, int dimensions)
    Returns a new multi-dimensional array instruction.
    Parameters:
      `arrayTypeEntry` - the type of the array
      `dimensions` - the number of dimensions of the array
    Returns:
      a new multi-dimensional array instruction
    Throws:
      `IllegalArgumentException` - if `dimensions` is out of range