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

# Interface NewPrimitiveArrayInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

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

A new primitive array instruction is composite:

    NewPrimitiveArrayInstruction(TypeKind typeKind)

where `typeKind` is primitive and not `void`.

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static NewPrimitiveArrayInstruction`
  `of(TypeKind typeKind)`
  Returns a new primitive array 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.
    API Note:
      The backing array code for this instruction is available through `typeKind().newarrayCode()`.
    Returns:
      the component type of the array

  - ### of

    static NewPrimitiveArrayInstruction of(TypeKind typeKind)
    Returns a new primitive array instruction.
    Parameters:
      `typeKind` - the component type of the array
    Returns:
      a new primitive array instruction
    Throws:
      `IllegalArgumentException` - when `typeKind` is not primitive or is `void`
    See Also:
      - `TypeKind::fromNewarrayCode`