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, ...
  • Constructor Details

    • NEWARRAY

      public NEWARRAY(byte type)
    • NEWARRAY

      public NEWARRAY(BasicType type)
  • Method Details

    • dump

      public void dump(DataOutputStream out) throws IOException
      Dump instruction as byte code to stream out.
      Overrides:
      dump in class Instruction
      Parameters:
      out - Output stream
      Throws:
      IOException
    • getTypecode

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

      public final Type getType()
      Returns:
      type of constructed array
    • 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
    • initFromFile

      protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
      Read needed data (e.g. 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
    • getExceptions

      public Class<?>[] getExceptions()
      Specified by:
      getExceptions in interface ExceptionThrower
    • 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, i.e., the most specific visitXXX() call comes last.
      Specified by:
      accept in class Instruction
      Parameters:
      v - Visitor object