# Class IINC

java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.LocalVariableInstruction
org.apache.bcel.generic.IINC

All Implemented Interfaces:
  `Cloneable, IndexedInstruction, TypedInstruction`

public class IINC extends LocalVariableInstruction
IINC - Increment local variable by constant

- ## Field Summary

  ### Fields inherited from class LocalVariableInstruction

  `n`

  ### Fields inherited from class Instruction

  `length, opcode`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IINC(int n, int c)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(Visitor v)`
  Calls corresponding visitor method(s).
  `void`
  `dump(DataOutputStream out)`
  Dumps instruction as byte code to stream out.
  `final int`
  `getIncrement()`
  `Type`
  `getType(ConstantPoolGen cp)`
  Returns the type associated with the instruction - in case of ALOAD or ASTORE Type.OBJECT is returned.
  `protected void`
  `initFromFile(ByteSequence bytes, boolean wide)`
  Reads needed data (for example index) from file.
  `final void`
  `setIncrement(int c)`
  Sets increment factor.
  `final void`
  `setIndex(int n)`
  Sets index of local variable.
  `String`
  `toString(boolean verbose)`
  Returns mnemonic for instruction.

  ### Methods inherited from class LocalVariableInstruction

  `getCanonicalTag, getIndex`

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

- ## Constructor Details

  - ### IINC

    public IINC(int n, int c)
    Parameters:
      `n` - index of local variable
      `c` - increment factor

- ## Method Details

  - ### accept

    public void accept(Visitor v)
    Calls 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

  - ### dump

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

  - ### getIncrement

    public final int getIncrement()
    Returns:
      increment factor

  - ### getType

    public Type getType(ConstantPoolGen cp)
    Description copied from class: `LocalVariableInstruction`
    Returns the type associated with the instruction - in case of ALOAD or ASTORE Type.OBJECT is returned. This is just a bit incorrect, because ALOAD and ASTORE may work on every ReferenceType (including Type.NULL) and ASTORE may even work on a ReturnaddressType.
    Specified by:
      `getType` in interface `TypedInstruction`
    Overrides:
      `getType` in class `LocalVariableInstruction`
    Returns:
      int type

  - ### initFromFile

    protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
    Reads needed data (for example index) from file.
    Overrides:
      `initFromFile` in class `LocalVariableInstruction`
    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

  - ### setIncrement

    public final void setIncrement(int c)
    Sets increment factor.

  - ### setIndex

    public final void setIndex(int n)
    Sets index of local variable.
    Specified by:
      `setIndex` in interface `IndexedInstruction`
    Overrides:
      `setIndex` in class `LocalVariableInstruction`
    See Also:
      - `LocalVariableInstruction.setIndexOnly(int)`

  - ### toString

    public String toString(boolean verbose)
    Returns mnemonic for instruction.
    Overrides:
      `toString` in class `LocalVariableInstruction`
    Parameters:
      `verbose` - long/short format switch
    Returns:
      mnemonic for instruction.