Interface InvokeInstruction
- All Superinterfaces:
- ClassFileElement,- CodeElement,- Instruction
Models a method invocation instruction in the 
 where 
code array of a 
 Code attribute, other than invokedynamic.
 Corresponding opcodes have a kind of Opcode.Kind.INVOKE.
 Delivered as a CodeElement when traversing the elements of a CodeModel.
 A method invocation instruction is composite:
InvokeInstruction(
    Opcode opcode,
    MethodRefEntry | InterfaceMethodRefEntry method)
)
method must be an InterfaceMethodRefEntry for invokeinterface opcode, and must be a 
 MethodRefEntry for invokevirtual opcode.
 invokestatic and invokespecial can have either type of entry for method.- Since:
- 24
- See Also:
- 
Method SummaryModifier and TypeMethodDescriptionintcount()Returns thecountvalue of aninvokeinterfaceinstruction, or0for other instructions.booleanReturns whether the class or interface holding the method is an interface.method()Returns theMethodRefEntryorInterfaceMethodRefEntryconstant described by this instruction.default Utf8Entryname()Returns the name of the method.static InvokeInstructionof(Opcode op, ClassEntry owner, NameAndTypeEntry nameAndType, boolean isInterface) Returns an invocation instruction.static InvokeInstructionof(Opcode op, ClassEntry owner, Utf8Entry name, Utf8Entry type, boolean isInterface) Returns an invocation instruction.static InvokeInstructionof(Opcode op, MemberRefEntry method) Returns an invocation instruction.default ClassEntryowner()Returns the class or interface holding the method.default Utf8Entrytype()Returns the method descriptor string of the method.default MethodTypeDescReturns a symbolic descriptor for the method type.Methods declared in interface java.lang.classfile.Instructionopcode, sizeInBytes
- 
Method Details- 
methodMemberRefEntry method()Returns theMethodRefEntryorInterfaceMethodRefEntryconstant described by this instruction.- Returns:
- the MethodRefEntryorInterfaceMethodRefEntryconstant described by this instruction
 
- 
isInterfaceboolean isInterface()Returns whether the class or interface holding the method is an interface.- Returns:
- whether the class or interface holding the method is an interface
 
- 
countint count()Returns thecountvalue of aninvokeinterfaceinstruction, or0for other instructions.For an invokeinterfaceinstruction, this value must be equivalent to the sum of slot sizes of all arguments plus one, which is equal to the number of operand stack depth consumed by this interface method invocation instruction.- Returns:
- the countvalue of aninvokeinterfaceinstruction, or0for other instructions
- See Java Virtual Machine Specification:
- 
6.5.invokeinterface invokeinterface
 
- 
ownerReturns the class or interface holding the method.- Returns:
- the class or interface holding the method
 
- 
name
- 
typeReturns the method descriptor string of the method.- API Note:
- A symbolic descriptor for the type of the method is available through
 typeSymbol().
- Returns:
- the method descriptor string of the method
 
- 
typeSymbolReturns a symbolic descriptor for the method type.- Returns:
- a symbolic descriptor for the method type
 
- 
ofReturns an invocation instruction.- Parameters:
- op- the opcode for the specific type of invocation instruction, which must be of kind- Opcode.Kind.INVOKE
- method- a constant pool entry describing the method
- Returns:
- an invocation instruction
- Throws:
- IllegalArgumentException- if the opcode kind is not- Opcode.Kind.INVOKE
 
- 
ofstatic InvokeInstruction of(Opcode op, ClassEntry owner, Utf8Entry name, Utf8Entry type, boolean isInterface) Returns an invocation instruction.- Parameters:
- op- the opcode for the specific type of invocation instruction, which must be of kind- Opcode.Kind.INVOKE
- owner- the class holding the method
- name- the name of the method
- type- the method descriptor
- isInterface- whether the class holding the method is an interface
- Returns:
- an invocation instruction
- Throws:
- IllegalArgumentException- if the opcode kind is not- Opcode.Kind.INVOKE
 
- 
ofstatic InvokeInstruction of(Opcode op, ClassEntry owner, NameAndTypeEntry nameAndType, boolean isInterface) Returns an invocation instruction.- Parameters:
- op- the opcode for the specific type of invocation instruction, which must be of kind- Opcode.Kind.INVOKE
- owner- the class holding the method
- nameAndType- the name and type of the method
- isInterface- whether the class holding the method is an interface
- Returns:
- an invocation instruction
- Throws:
- IllegalArgumentException- if the opcode kind is not- Opcode.Kind.INVOKE
 
 
-