Class MULTIANEWARRAY

All Implemented Interfaces:
Cloneable, AllocationInstruction, ExceptionThrower, IndexedInstruction, LoadClass, TypedInstruction

MULTIANEWARRAY - Create new mutidimensional array of references
 Stack: ..., count1, [count2, ...] -> ..., arrayref
 
  • Constructor Details

    • MULTIANEWARRAY

      public MULTIANEWARRAY(int index, short dimensions)
  • 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, i.e., the most specific visitXXX() call comes last.
      Specified by:
      accept in class Instruction
      Parameters:
      v - Visitor object
    • consumeStack

      public int consumeStack(ConstantPoolGen cpg)
      Also works for instructions whose stack effect depends on the constant pool entry they reference.
      Overrides:
      consumeStack in class Instruction
      Returns:
      Number of words consumed from stack by this instruction
    • dump

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

      public final short getDimensions()
      Returns:
      number of dimensions to be created
    • getExceptions

      public Class<?>[] getExceptions()
      Specified by:
      getExceptions in interface ExceptionThrower
    • getLoadClassType

      Description copied from interface: LoadClass
      Returns the ObjectType of the referenced class or interface that may be loaded and resolved.
      Specified by:
      getLoadClassType in interface LoadClass
      Parameters:
      cpg - A ConstantPoolGen
      Returns:
      object type that may be loaded or null if a primitive is referenced
    • initFromFile

      protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
      Read needed data (i.e., no. dimension) from file.
      Overrides:
      initFromFile in class CPInstruction
      Parameters:
      bytes - input stream
      wide - wide prefix?
      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: CPInstruction
      Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
      Overrides:
      toString in class CPInstruction
      Parameters:
      verbose - long/short format switch
      Returns:
      mnemonic for instruction
    • toString

      Overrides:
      toString in class CPInstruction
      Returns:
      mnemonic for instruction with symbolic references resolved