# Class JsrInstruction

java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.BranchInstruction
org.apache.bcel.generic.JsrInstruction

All Implemented Interfaces:
  `Cloneable, InstructionTargeter, StackProducer, TypedInstruction, UnconditionalBranch`

Direct Known Subclasses:
  `JSR, JSR_W`

public abstract class JsrInstruction extends BranchInstruction implements UnconditionalBranch, TypedInstruction, StackProducer
Super class for JSR - Jump to subroutine

- ## Field Summary

  ### Fields inherited from class BranchInstruction

  `index, position, target`

  ### Fields inherited from class Instruction

  `length, opcode`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Type`
  `getType(ConstantPoolGen cp)`
  Gets the type associated with this instruction.
  `InstructionHandle`
  `physicalSuccessor()`
  Returns an InstructionHandle to the physical successor of this JsrInstruction.

  ### Methods inherited from class BranchInstruction

  `containsTarget, dump, getIndex, getPosition, getTarget, getTargetOffset, getTargetOffset, initFromFile, setIndex, setPosition, setTarget, toString, updatePosition, updateTarget`

  ### Methods inherited from class Instruction

  `accept, 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`

- ## Method Details

  - ### getType

    public Type getType(ConstantPoolGen cp)
    Description copied from interface: `TypedInstruction`
    Gets the type associated with this instruction.
    Specified by:
      `getType` in interface `TypedInstruction`
    Parameters:
      `cp` - the constant pool generator.
    Returns:
      return address type.

  - ### physicalSuccessor

    public InstructionHandle physicalSuccessor()
    Returns an InstructionHandle to the physical successor of this JsrInstruction. For this method to work, this JsrInstruction object must not be shared between multiple InstructionHandle objects! Formally, there must not be InstructionHandle objects i, j where i != j and i.getInstruction() == this == j.getInstruction().
    Returns:
      an InstructionHandle to the "next" instruction that will be executed when RETurned from a subroutine.