Интерфейс InvokeInstruction
- Все суперинтерфейсы:
ClassFileElement, CodeElement, Instruction
public sealed interface InvokeInstruction extends Instruction
Представляет инструкцию вызова метода в массиве где
code атрибута
Code, за исключением invokedynamic. Соответствующие коды операций имеют вид Opcode.Kind.INVOKE. При обходе элементов CodeModel передаётся как CodeElement. Инструкция вызова метода является составной:
InvokeInstruction(
Opcode opcode,
MethodRefEntry | InterfaceMethodRefEntry method)
)
method должен быть InterfaceMethodRefEntry для кода операции invokeinterface и
MethodRefEntry для кода операции invokevirtual. Для invokestatic и invokespecial для method может использоваться запись любого из этих типов.- Начиная с:
- 24
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
count() |
Возвращает значение count инструкции invokeinterface или 0 для других инструкций. |
boolean |
isInterface() |
Возвращает значение, указывающее, является ли класс или интерфейс, содержащий метод, интерфейсом. |
MemberRefEntry |
method() |
Возвращает константу MethodRefEntry или InterfaceMethodRefEntry, описанную этой инструкцией. |
default Utf8Entry |
name() |
Возвращает имя метода. |
static InvokeInstruction |
of |
Возвращает инструкцию вызова. |
static InvokeInstruction |
of |
Возвращает инструкцию вызова. |
static InvokeInstruction |
of |
Возвращает инструкцию вызова. |
default ClassEntry |
owner() |
Возвращает класс или интерфейс, содержащий метод. |
default Utf8Entry |
type() |
Возвращает строку дескриптора метода. |
default MethodTypeDesc |
typeSymbol() |
Возвращает символический дескриптор типа метода. |
Методы, объявленные в интерфейсе Instruction
opcode, sizeInBytes | Модификатор и тип | Метод | Описание |
|---|---|---|
Opcode |
opcode() |
Возвращает операцию этой инструкции. |
int |
sizeInBytes() |
Возвращает размер этой инструкции в байтах. |
Подробное описание методов
method
MemberRefEntry method()
Возвращает константу
MethodRefEntry или InterfaceMethodRefEntry, описанную этой инструкцией.- Возвращает:
- константу
MethodRefEntryилиInterfaceMethodRefEntry, описанную этой инструкцией
isInterface
boolean isInterface()
Возвращает значение, указывающее, является ли класс или интерфейс, содержащий метод, интерфейсом.
- Возвращает:
- значение, указывающее, является ли класс или интерфейс, содержащий метод, интерфейсом
count
int count()
Возвращает значение
count инструкции invokeinterface или 0 для других инструкций. Для инструкции invokeinterface это значение должно быть равно сумме размеров слотов всех аргументов плюс единица. Это значение равно глубине стека операндов, потребляемой данной инструкцией вызова метода интерфейса.
- Возвращает:
- значение
countинструкцииinvokeinterfaceили0для других инструкций - См. Спецификацию виртуальной машины Java:
- 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— значение, указывающее, является ли класс, содержащий метод, интерфейсом - Возвращает:
- инструкцию вызова
- Выбрасывает:
-
IllegalArgumentException— если вид кода операции не являетсяOpcode.Kind.INVOKE
of
static InvokeInstruction of(Opcode op, ClassEntry owner, NameAndTypeEntry nameAndType, boolean isInterface)
Возвращает инструкцию вызова.
- Параметры:
-
op— код операции для конкретного типа инструкции вызова; он должен иметь видOpcode.Kind.INVOKE -
owner— класс, содержащий метод -
nameAndType— имя и тип метода -
isInterface— значение, указывающее, является ли класс, содержащий метод, интерфейсом - Возвращает:
- инструкцию вызова
- Выбрасывает:
-
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.