# Class NEWARRAY

java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.NEWARRAY

All Implemented Interfaces:
  `Cloneable, AllocationInstruction, ExceptionThrower, StackProducer`

public class NEWARRAY extends Instruction implements AllocationInstruction, ExceptionThrower, StackProducer
NEWARRAY - Create new array of basic type (int, short, ...)

    Stack: ..., count -> ..., arrayref

type must be one of T_INT, T_SHORT, ...

- ## Field Summary

  ### Fields inherited from class Instruction

  `length, opcode`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NEWARRAY(byte type)`
  `NEWARRAY(BasicType type)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(Visitor v)`
  Call corresponding visitor method(s).
  `void`
  `dump(DataOutputStream out)`
  Dumps instruction as byte code to stream out.
  `Class<?>[]`
  `getExceptions()`
  Gets the exceptions that may be thrown by this instruction.
  `final Type`
  `getType()`
  `final byte`
  `getTypecode()`
  `protected void`
  `initFromFile(ByteSequence bytes, boolean wide)`
  Reads needed data (for example index) from file.
  `String`
  `toString(boolean verbose)`
  Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")"

  ### Methods inherited from class Instruction

  `consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString, toString`

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface StackProducer

  `produceStack`

- ## Constructor Details

  - ### NEWARRAY

    public NEWARRAY(BasicType type)

  - ### NEWARRAY

    public NEWARRAY(byte type)

- ## Method Details

  - ### accept

    public void accept(Visitor v)
    Call corresponding visitor method(s). The order is: Call visitor methods of implemented interfaces first, then call methods according to the class hierarchy in descending order, that is, the most specific visitXXX() call comes last.
    Specified by:
      `accept` in class `Instruction`
    Parameters:
      `v` - Visitor object.

  - ### dump

    public void dump(DataOutputStream out) throws IOException
    Dumps instruction as byte code to stream out.
    Overrides:
      `dump` in class `Instruction`
    Parameters:
      `out` - Output stream.
    Throws:
      `IOException` - Thrown when an I/O exception of some sort has occurred.

  - ### getExceptions

    public Class<?>[] getExceptions()
    Description copied from interface: `ExceptionThrower`
    Gets the exceptions that may be thrown by this instruction.
    Specified by:
      `getExceptions` in interface `ExceptionThrower`
    Returns:
      the exceptions that may be thrown by this instruction.

  - ### getType

    public final Type getType()
    Returns:
      type of constructed array.

  - ### getTypecode

    public final byte getTypecode()
    Returns:
      numeric code for basic element type.

  - ### initFromFile

    protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
    Reads needed data (for example index) from file.
    Overrides:
      `initFromFile` in class `Instruction`
    Parameters:
      `bytes` - byte sequence to read from.
      `wide` - "wide" instruction flag.
    Throws:
      `IOException` - may be thrown if the implementation needs to read data from the file

  - ### toString

    public String toString(boolean verbose)
    Description copied from class: `Instruction`
    Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")"
    Overrides:
      `toString` in class `Instruction`
    Parameters:
      `verbose` - long/short format switch.
    Returns:
      mnemonic for instruction.