Package org.apache.bcel.generic
Class InvokeInstruction
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
org.apache.bcel.generic.InvokeInstruction
- All Implemented Interfaces:
Cloneable,ExceptionThrower,IndexedInstruction,LoadClass,StackConsumer,StackProducer,TypedInstruction
- Direct Known Subclasses:
INVOKEDYNAMIC,INVOKEINTERFACE,INVOKESPECIAL,INVOKESTATIC,INVOKEVIRTUAL
public abstract class InvokeInstruction
extends FieldOrMethod
implements ExceptionThrower, StackConsumer, StackProducer
Super class for the INVOKExxx family of instructions.
-
Field Summary
Fields inherited from class org.apache.bcel.generic.CPInstruction
indexFields inherited from class org.apache.bcel.generic.Instruction
length, opcode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintAlso works for instructions whose stack effect depends on the constant pool entry they reference.Type[]This overrides the deprecated version as we know here that the referenced class may legally be an array.getType(ConstantPoolGen cpg) Returns the type associated with this instruction.intAlso works for instructions whose stack effect depends on the constant pool entry they reference.toString(ConstantPool cp) Methods inherited from class org.apache.bcel.generic.FieldOrMethod
getClassType, getLoadClassType, getName, getReferenceType, getSignatureMethods inherited from class org.apache.bcel.generic.CPInstruction
dump, getIndex, initFromFile, setIndex, toStringMethods inherited from class org.apache.bcel.generic.Instruction
accept, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, readInstruction, setComparator, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.bcel.generic.ExceptionThrower
getExceptions
-
Constructor Details
-
InvokeInstruction
- Parameters:
index- to constant pool
-
-
Method Details
-
consumeStack
Also works for instructions whose stack effect depends on the constant pool entry they reference.- Specified by:
consumeStackin interfaceStackConsumer- Overrides:
consumeStackin classInstruction- Returns:
- Number of words consumed from stack by this instruction
-
getArgumentTypes
- Returns:
- argument types of referenced method.
-
getClassName
This overrides the deprecated version as we know here that the referenced class may legally be an array.- Overrides:
getClassNamein classFieldOrMethod- Returns:
- name of the referenced class/interface
- Throws:
IllegalArgumentException- if the referenced class is an array (this should not happen)
-
getMethodName
- Returns:
- name of referenced method.
-
getReturnType
- Returns:
- return type of referenced method.
-
getType
Description copied from interface:LoadClassReturns the type associated with this instruction. LoadClass instances are always typed, but this type does not always refer to the type of the class or interface that it possibly forces to load. For example,GETFIELDwould return the type of the field and not the type of the class where the field is defined. If no class is forced to be loaded,nullis returned. An example for this is anNEWARRAYinstruction that creates anint[][].- Specified by:
getTypein interfaceLoadClass- Specified by:
getTypein interfaceTypedInstruction- Overrides:
getTypein classCPInstruction- Parameters:
cpg- A ConstantPoolGen- Returns:
- return type of referenced method.
- See Also:
-
produceStack
Also works for instructions whose stack effect depends on the constant pool entry they reference.- Specified by:
produceStackin interfaceStackProducer- Overrides:
produceStackin classInstruction- Returns:
- Number of words produced onto stack by this instruction
-
toString
- Overrides:
toStringin classCPInstruction- Returns:
- mnemonic for instruction with symbolic references resolved
-