Package org.apache.bcel.generic
Class INVOKEDYNAMIC
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
org.apache.bcel.generic.InvokeInstruction
org.apache.bcel.generic.INVOKEDYNAMIC
- All Implemented Interfaces:
Cloneable,ExceptionThrower,IndexedInstruction,LoadClass,StackConsumer,StackProducer,TypedInstruction
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.
- Since:
- 6.0
- See Also:
-
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 TypeMethodDescriptionvoidCall corresponding visitor method(s).voiddump(DataOutputStream out) Dump instruction as byte code to stream out.Override the parent method because our classname is held elsewhere.Class<?>[]Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object, as that is the only type we can say for sure the reference will be.protected voidinitFromFile(ByteSequence bytes, boolean wide) Read needed data (i.e., index) from file.toString(ConstantPool cp) Methods inherited from class org.apache.bcel.generic.InvokeInstruction
consumeStack, getArgumentTypes, getMethodName, getReturnType, getType, produceStackMethods inherited from class org.apache.bcel.generic.FieldOrMethod
getClassType, getLoadClassType, getName, getSignatureMethods inherited from class org.apache.bcel.generic.CPInstruction
getIndex, setIndex, toStringMethods inherited from class org.apache.bcel.generic.Instruction
copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, readInstruction, setComparator, toString
-
Constructor Details
-
INVOKEDYNAMIC
public INVOKEDYNAMIC(int index)
-
-
Method Details
-
dump
Dump instruction as byte code to stream out.- Overrides:
dumpin classCPInstruction- Parameters:
out- Output stream- Throws:
IOException
-
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
-
toString
- Overrides:
toStringin classInvokeInstruction- Returns:
- mnemonic for instruction with symbolic references resolved
-
getExceptions
-
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
-
getClassName
Override the parent method because our classname is held elsewhere.- Overrides:
getClassNamein classInvokeInstruction- Returns:
- name of the referenced class/interface
-
getReferenceType
Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object, as that is the only type we can say for sure the reference will be.- Overrides:
getReferenceTypein classFieldOrMethod- Parameters:
cpg- the ConstantPoolGen used to create the instruction- Returns:
- an ObjectType for java.lang.Object
- Since:
- 6.1
-