Interface InvokeInstruction
- All Superinterfaces:
ClassFileElementPREVIEW
,CodeElementPREVIEW
,InstructionPREVIEW
InvokeInstruction
is a preview API of the Java platform.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
Models a method invocation instruction in the
code
array of a
Code
attribute, other than invokedynamic
. Corresponding opcodes
will have a kind
of Opcode.Kind.INVOKE
PREVIEW. Delivered as a
CodeElement
PREVIEW when traversing the elements of a CodeModel
PREVIEW.- Since:
- 22
-
Method Summary
Modifier and TypeMethodDescriptionint
count()
Returns thecount
value of aninvokeinterface
instruction, as defined in JVMS 6.5 or0
forinvokespecial
,invokestatic
andinvokevirtual
instructions.boolean
Returns whether the class holding the method is an interface.method()
Returns theMethodRefEntry
PREVIEW orInterfaceMethodRefEntry
PREVIEW constant described by this instruction.name()
Returns the name of the method.static InvokeInstructionPREVIEW
of
(OpcodePREVIEW op, ClassEntryPREVIEW owner, NameAndTypeEntryPREVIEW nameAndType, boolean isInterface) Returns an invocation instruction.static InvokeInstructionPREVIEW
of
(OpcodePREVIEW op, ClassEntryPREVIEW owner, Utf8EntryPREVIEW name, Utf8EntryPREVIEW type, boolean isInterface) Returns an invocation instruction.static InvokeInstructionPREVIEW
of
(OpcodePREVIEW op, MemberRefEntryPREVIEW method) Returns an invocation instruction.default ClassEntryPREVIEW
owner()
Returns the class holding the method.type()
Returns the method descriptor of the method.default MethodTypeDesc
Returns a symbolic descriptor for the method type.Methods declared in interface java.lang.classfile.InstructionPREVIEW
opcode, sizeInBytes
-
Method Details
-
method
MemberRefEntryPREVIEW method()Returns theMethodRefEntry
PREVIEW orInterfaceMethodRefEntry
PREVIEW constant described by this instruction.- Returns:
- the
MethodRefEntry
PREVIEW orInterfaceMethodRefEntry
PREVIEW constant described by this instruction
-
isInterface
boolean isInterface()Returns whether the class holding the method is an interface.- Returns:
- whether the class holding the method is an interface
-
count
int count()Returns thecount
value of aninvokeinterface
instruction, as defined in JVMS 6.5 or0
forinvokespecial
,invokestatic
andinvokevirtual
instructions.- Returns:
- the
count
value of aninvokeinterface
instruction, as defined in JVMS 6.5 or0
forinvokespecial
,invokestatic
andinvokevirtual
instructions
-
owner
Returns the class holding the method.- Returns:
- the class holding the method
-
name
-
type
-
typeSymbol
Returns a symbolic descriptor for the method type.- Returns:
- a symbolic descriptor for the method type
-
of
Returns an invocation instruction.- Parameters:
op
- the opcode for the specific type of invocation instruction, which must be of kindOpcode.Kind.INVOKE
PREVIEWmethod
- a constant pool entry describing the method- Returns:
- an invocation instruction
- Throws:
IllegalArgumentException
- if the opcode kind is notOpcode.Kind.INVOKE
PREVIEW.
-
of
static InvokeInstructionPREVIEW of(OpcodePREVIEW op, ClassEntryPREVIEW owner, Utf8EntryPREVIEW name, Utf8EntryPREVIEW type, boolean isInterface) Returns an invocation instruction.- Parameters:
op
- the opcode for the specific type of invocation instruction, which must be of kindOpcode.Kind.INVOKE
PREVIEWowner
- the class holding the methodname
- the name of the methodtype
- the method descriptorisInterface
- whether the class holding the method is an interface- Returns:
- an invocation instruction
-
of
static InvokeInstructionPREVIEW of(OpcodePREVIEW op, ClassEntryPREVIEW owner, NameAndTypeEntryPREVIEW nameAndType, boolean isInterface) Returns an invocation instruction.- Parameters:
op
- the opcode for the specific type of invocation instruction, which must be of kindOpcode.Kind.INVOKE
PREVIEWowner
- the class holding the methodnameAndType
- the name and type of the methodisInterface
- whether the class holding the method is an interface- Returns:
- an invocation instruction
-
InvokeInstruction
when preview features are enabled.