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
index
Fields inherited from class org.apache.bcel.generic.Instruction
length, opcode
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Call corresponding visitor method(s).void
dump
(DataOutputStream out) Dump instruction as byte code to stream out.Override the parent method because our class name is held elsewhere.Class<?>[]
Since InvokeDynamic doesn't refer to a reference type, just returnObject
, as that is the only type we can say for sure the reference will be.protected void
initFromFile
(ByteSequence bytes, boolean wide) Read needed data (i.e., index) from file.Methods inherited from class org.apache.bcel.generic.InvokeInstruction
consumeStack, getArgumentTypes, getMethodName, getReturnType, getType, produceStack, toString
Methods inherited from class org.apache.bcel.generic.FieldOrMethod
getClassType, getLoadClassType, getName, getSignature
Methods inherited from class org.apache.bcel.generic.CPInstruction
getIndex, setIndex, toString
Methods inherited from class org.apache.bcel.generic.Instruction
copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, readInstruction, setComparator, toString
-
Constructor Details
-
INVOKEDYNAMIC
-
-
Method Details
-
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:
accept
in classInstruction
- Parameters:
v
- Visitor object
-
dump
Dump instruction as byte code to stream out.- Overrides:
dump
in classCPInstruction
- Parameters:
out
- Output stream- Throws:
IOException
- Thrown when an I/O exception of some sort has occurred.
-
getClassName
Override the parent method because our class name is held elsewhere. Note: Contrary to this method's name it does not return the class name of the invoke target; rather it returns the name of the method that will be used to invoke the Lambda method generated by this invoke dynamic instruction.- Overrides:
getClassName
in classInvokeInstruction
- Returns:
- name of the referenced class/interface
-
getExceptions
-
getReferenceType
Since InvokeDynamic doesn't refer to a reference type, just returnObject
, as that is the only type we can say for sure the reference will be.- Overrides:
getReferenceType
in classFieldOrMethod
- Parameters:
cpg
- the ConstantPoolGen used to create the instruction- Returns:
- an ObjectType for
Object
- Since:
- 6.1
-
initFromFile
Read needed data (i.e., index) from file.- Overrides:
initFromFile
in classCPInstruction
- Parameters:
bytes
- input streamwide
- wide prefix?- Throws:
IOException
- may be thrown if the implementation needs to read data from the file
-