Spec-Zone.ru › OpenJDK 24

Интерфейс InvokeInstruction

Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
public sealed interface InvokeInstruction extends Instruction
Моделирует инструкцию вызова метода в массиве code атрибута Code, кроме invokedynamic. Соответствующие кодам операции имеют вид Opcode.Kind.INVOKE. Доставляется как CodeElement при обходе элементов CodeModel.

Инструкция вызова метода является составной:

InvokeInstruction(
    Opcode opcode,
    MethodRefEntry | InterfaceMethodRefEntry method)
)
где method должен быть InterfaceMethodRefEntry для кода операции invokeinterface и должен быть MethodRefEntry для кода операции invokevirtual. invokestatic и invokespecial могут иметь любой из этих типов для method.
С момента:
24
См. также:
  • Opcode.Kind.INVOKE
  • CodeBuilder::invoke

Краткое описание методов

Модификатор и тип Метод Описание
int count()
Возвращает значение count инструкции invokeinterface, или 0 для других инструкций.
boolean isInterface()
Возвращает значение true, если класс или интерфейс, содержащий метод, является интерфейсом.
MemberRefEntry method()
Возвращает константу типа MethodRefEntry или InterfaceMethodRefEntry, описанную данной инструкцией.
default Utf8Entry name()
Возвращает имя метода.
static InvokeInstruction of(Opcode op, ClassEntry owner, NameAndTypeEntry nameAndType, boolean isInterface)
Возвращает инструкцию вызова.
static InvokeInstruction of(Opcode op, ClassEntry owner, Utf8Entry name, Utf8Entry type, boolean isInterface)
Возвращает инструкцию вызова.
static InvokeInstruction of(Opcode op, MemberRefEntry method)
Возвращает инструкцию вызова.
default ClassEntry owner()
Возвращает класс или интерфейс, содержащий метод.
default Utf8Entry type()
Возвращает строку описания метода.
default MethodTypeDesc typeSymbol()
Возвращает символьное описание типа метода.

Методы, объявленные в интерфейсе java.lang.classfile.Instruction

opcode, sizeInBytes

Подробное описание методов

method

MemberRefEntry method()
Возвращает константу типа MethodRefEntry или InterfaceMethodRefEntry, описанную данной инструкцией.
Возвращает:
константу типа MethodRefEntry или InterfaceMethodRefEntry, описанную данной инструкцией

isInterface

boolean isInterface()
Возвращает значение true, если класс или интерфейс, содержащий метод, является интерфейсом.
Возвращает:
значение true, если класс или интерфейс, содержащий метод, является интерфейсом

count

int count()
Возвращает значение count инструкции invokeinterface, или 0 для других инструкций.

Для инструкции invokeinterface, это значение должно быть равно сумме размеров слотов аргументов плюс один, что соответствует количеству слотов стека операндов, потребляемых инструкцией вызова интерфейсного метода.

Возвращает:
значение count инструкции invokeinterface, или 0 для других инструкций
См. Спецификацию Java Virtual Machine:
6.5.invokeinterface invokeinterface

owner

default ClassEntry owner()
Возвращает класс или интерфейс, содержащий метод.
Возвращает:
класс или интерфейс, содержащий метод

name

default Utf8Entry name()
Возвращает имя метода.
Возвращает:
имя метода

type

default Utf8Entry type()
Возвращает строку описания метода.
Примечание API:
Символьное описание типа метода доступно через typeSymbol().
Возвращает:
строку описания метода

typeSymbol

default MethodTypeDesc typeSymbol()
Возвращает символьное описание типа метода.
Возвращает:
символьное описание типа метода

of

static InvokeInstruction of(Opcode op, MemberRefEntry method)
Возвращает инструкцию вызова.
Параметры:
op - код операции для конкретного типа инструкции вызова, который должен иметь вид Opcode.Kind.INVOKE
method - запись константного пула, описывающая метод
Возвращает:
инструкцию вызова
Исключение:
IllegalArgumentException - если вид кода операции не Opcode.Kind.INVOKE

of

static InvokeInstruction of(Opcode op, ClassEntry owner, Utf8Entry name, Utf8Entry type, boolean isInterface)
Возвращает инструкцию вызова.
Параметры:
op - код операции для конкретного типа инструкции вызова, который должен иметь вид Opcode.Kind.INVOKE
owner - класс, содержащий метод
name - имя метода
type - описание метода
isInterface - значение true, если класс, содержащий метод, является интерфейсом
Возвращает:
инструкцию вызова
Исключение:
IllegalArgumentException - если вид кода операции не Opcode.Kind.INVOKE

of

static InvokeInstruction of(Opcode op, ClassEntry owner, NameAndTypeEntry nameAndType, boolean isInterface)
Возвращает инструкцию вызова.
Параметры:
op - код операции для конкретного типа инструкции вызова, который должен иметь вид Opcode.Kind.INVOKE
owner - класс, содержащий метод
nameAndType - имя и описание метода
isInterface - значение true, если класс, содержащий метод, является интерфейсом
Возвращает:
инструкцию вызова
Исключение:
IllegalArgumentException - если вид кода операции не Opcode.Kind.INVOKE

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/instruction/InvokeInstruction.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API