Interface InvokeInstruction

All Superinterfaces:
ClassFileElement, CodeElement, Instruction

public sealed interface InvokeInstruction extends Instruction
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. Delivered as a CodeElement when traversing the elements of a CodeModel.
Since:
24
  • Method Details

    • method

      MemberRefEntry method()
      Returns the MethodRefEntry or InterfaceMethodRefEntry constant described by this instruction.
      Returns:
      the MethodRefEntry or InterfaceMethodRefEntry 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 the count value of an invokeinterface instruction, as defined in JVMS 6.5 or 0 for invokespecial, invokestatic and invokevirtual instructions.
      Returns:
      the count value of an invokeinterface instruction, as defined in JVMS 6.5 or 0 for invokespecial, invokestatic and invokevirtual instructions
    • owner

      default ClassEntry owner()
      Returns the class holding the method.
      Returns:
      the class holding the method
    • name

      default Utf8Entry name()
      Returns the name of the method.
      Returns:
      the name of the method
    • type

      default Utf8Entry type()
      Returns the method descriptor of the method.
      Returns:
      the method descriptor of the method
    • typeSymbol

      default MethodTypeDesc typeSymbol()
      Returns a symbolic descriptor for the method type.
      Returns:
      a symbolic descriptor for the method type
    • of

      static InvokeInstruction of(Opcode op, MemberRefEntry method)
      Returns 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.
    • of

      static 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
    • of

      static 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