Class INVOKEDYNAMIC
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
org.apache.bcel.generic.INVOKEDYNAMIC
- All Implemented Interfaces:
Serializable, Cloneable, ExceptionThrower, IndexedInstruction, LoadClass, StackConsumer, StackProducer, TypedInstruction
public class INVOKEDYNAMIC
extends FieldOrMethod
implements ExceptionThrower, StackConsumer, StackProducer
Class for INVOKEDYNAMIC. Not an instance of InvokeInstruction, since that class
expects to be able to get the class of the method. Ignores the bootstrap
mechanism entirely.
- See Also:
-
Field Summary
Fields inherited from class CPInstruction
indexFields inherited from class Instruction
length, opcode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCall corresponding visitor method(s).intAlso works for instructions whose stack effect depends on the constant pool entry they reference.Type[]Class<?>[]getName(ConstantPoolGen cpg) getType(ConstantPoolGen cpg) Returns the type associated with this instruction.protected voidinitFromFile(ByteSequence bytes, boolean wide) Read needed data (i.e., index) from file.intAlso works for instructions whose stack effect depends on the constant pool entry they reference.toString(ConstantPool cp) Methods inherited from class FieldOrMethod
getClassName, getClassType, getLoadClassType, getReferenceTypeMethods inherited from class CPInstruction
dump, getIndex, setIndex, toStringMethods inherited from class Instruction
copy, equals, getComparator, getLength, getName, getOpcode, hashCode, readInstruction, setComparator, toString
-
Constructor Details
-
INVOKEDYNAMIC
public INVOKEDYNAMIC(short opcode, int index) - Parameters:
index- to constant pool
-
-
Method Details
-
toString
- Overrides:
toStringin classCPInstruction- Returns:
- mnemonic for instruction with symbolic references resolved
-
getNameAndType
-
getSignature
- Overrides:
getSignaturein classFieldOrMethod- Returns:
- signature of referenced method/field.
-
getName
- Overrides:
getNamein classFieldOrMethod- Returns:
- name of referenced method/field.
-
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
-
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
-
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, GETFIELD would 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, null is returned. An example for this is an ANEWARRAY instruction that creates an int[][].- Specified by:
getTypein interfaceLoadClass- Specified by:
getTypein interfaceTypedInstruction- Overrides:
getTypein classCPInstruction- Returns:
- return type of referenced method.
- See Also:
-
getMethodName
- Returns:
- name of referenced method.
-
getReturnType
- Returns:
- return type of referenced method.
-
getArgumentTypes
- Returns:
- argument types of referenced method.
-
initFromFile
Read needed data (i.e., index) from file.- Overrides:
initFromFilein classCPInstruction- Parameters:
bytes- input streamwide- wide prefix?- Throws:
IOException- may be thrown if the implementation needs to read data from the file
-
getExceptions
- Specified by:
getExceptionsin interfaceExceptionThrower
-
accept
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:
acceptin classInstruction- Parameters:
v- Visitor object
-