Spec-Zone.ru › OpenJDK 17

Интерфейс MethodHandleDesc

Все суперинтерфейсы:
ConstantDesc
Все известные подинтерфейсы:
DirectMethodHandleDesc
public sealed interface MethodHandleDesc extends ConstantDesc permits DirectMethodHandleDesc (not exhaustive)
Номинальный дескриптор для константы MethodHandle.
С момента:
12

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

Модификатор и тип Метод Описание
default MethodHandleDesc asType(MethodTypeDesc type)
Возвращает MethodHandleDesc, описывающий этот обработчик методов, адаптированный к другому типу, как если бы использовалась функция MethodHandle.asType(MethodType).
boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство.
MethodTypeDesc invocationType()
Возвращает MethodTypeDesc, описывающий тип вызова обработчика методов, описанного этим номинальным дескриптором.
static DirectMethodHandleDesc of(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, String lookupDescriptor)
Создаёт MethodHandleDesc, соответствующий вызову объявленного метода, вызову конструктора или доступу к полю.
static DirectMethodHandleDesc ofConstructor(ClassDesc owner, ClassDesc... paramTypes)
Возвращает MethodHandleDesc, соответствующий вызову конструктора.
static DirectMethodHandleDesc ofField(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType)
Создаёт MethodHandleDesc, соответствующий обработчику методов, осуществляющему доступ к полю.
static DirectMethodHandleDesc ofMethod(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType)
Создаёт MethodHandleDesc, соответствующий вызову объявленного метода или конструктора.

Методы, унаследованные от интерфейса java.lang.constant.ConstantDesc

resolveConstantDesc

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

of

static DirectMethodHandleDesc of(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, String lookupDescriptor)
Создаёт MethodHandleDesc, соответствующий вызову объявленного метода, вызову конструктора или доступу к полю.

Строка описания поиска имеет тот же формат, что и для различных вариантов CONSTANT_MethodHandle_info и для методов поиска в MethodHandles.Lookup. Для вызова метода или конструктора она интерпретируется как описание типа метода; для доступа к полю — как описание поля. Если kind равно CONSTRUCTOR, параметр name игнорируется, а тип возврата описания поиска должен быть void. Если kind соответствует виртуальному вызову метода, тип поиска включает параметры метода, но не тип получателя.

Параметры:
kind - тип обрабатываемого дескриптора метода
owner - ClassDesc, описывающий класс, содержащий метод, конструктор или поле
name - неофициальное имя метода или поля (игнорируется, если kind равно CONSTRUCTOR)
lookupDescriptor - строка описания типа поиска, если запрос относится к вызову метода, или описывающая тип вызова, если запрос относится к полю или конструктору
Возвращает:
объект MethodHandleDesc
Исключения:
NullPointerException - если любой из аргументов, не подлежащих игнорированию, равен null
IllegalArgumentException - если строка описания не является допустимым описанием метода или поля
См. Спецификацию виртуальной машины Java:
4.4.8 Структура CONSTANT_MethodHandle_info
4.2.2 Неофициальные имена
4.3.2 Описания полей
4.3.3 Описания методов

ofMethod

static DirectMethodHandleDesc ofMethod(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType)
Создаёт MethodHandleDesc, соответствующий вызову объявленного метода или конструктора.

Строка описания поиска имеет тот же формат, что и для методов поиска в MethodHandles.Lookup. Если kind равно CONSTRUCTOR, имя игнорируется, а тип возврата типа поиска должен быть void. Если kind соответствует виртуальному вызову метода, тип поиска включает параметры метода, но не тип получателя.

Параметры:
kind - тип обрабатываемого дескриптора метода; должен быть одним из SPECIAL, VIRTUAL, STATIC, INTERFACE_SPECIAL, INTERFACE_VIRTUAL, INTERFACE_STATIC, CONSTRUCTOR
owner - ClassDesc, описывающий класс, содержащий метод или конструктор
name - неофициальное имя метода (игнорируется, если kind равно CONSTRUCTOR)
lookupMethodType - MethodTypeDesc, описывающий тип поиска
Возвращает:
объект MethodHandleDesc
Исключения:
NullPointerException - если любой из аргументов, не подлежащих игнорированию, равен null
IllegalArgumentException - если name имеет неправильный формат или тип некорректен
См. Спецификацию виртуальной машины Java:
4.2.2 Неофициальные имена

ofField

static DirectMethodHandleDesc ofField(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType)
Создаёт MethodHandleDesc, соответствующий дескриптору метода, который обращается к полю.
Параметры:
kind - тип обрабатываемого дескриптора метода; должен быть одним из GETTER, SETTER, STATIC_GETTER, или STATIC_SETTER
owner - ClassDesc, описывающий класс, содержащий поле
fieldName - неофициальное имя поля
fieldType - ClassDesc, описывающий тип поля
Возвращает:
объект MethodHandleDesc
Исключения:
NullPointerException - если любой из аргументов равен null
IllegalArgumentException - если kind не соответствует одному из допустимых значений или имя поля некорректно
См. Спецификацию виртуальной машины Java:
4.2.2 Неофициальные имена

ofConstructor

static DirectMethodHandleDesc ofConstructor(ClassDesc owner, ClassDesc... paramTypes)
Возвращает MethodHandleDesc, соответствующий вызову конструктора
Параметры:
owner - ClassDesc, описывающий класс, содержащий конструктор
paramTypes - ClassDescs, описывающие типы параметров конструктора
Возвращает:
объект MethodHandleDesc
Исключения:
NullPointerException - если любой аргумент или его содержимое null

asType

default MethodHandleDesc asType(MethodTypeDesc type)
Возвращает MethodHandleDesc, описывающий адаптацию этого дескриптора метода к другому типу, как если бы использовалась MethodHandle.asType(MethodType).
Параметры:
type - MethodHandleDesc, описывающий новый тип метода
Возвращает:
объект MethodHandleDesc для адаптированного дескриптора метода
Исключения:
NullPointerException - если аргумент null

invocationType

MethodTypeDesc invocationType()
Возвращает MethodTypeDesc, описывающий тип вызова метода, описанного этим номинальным дескриптором. Тип вызова описывает полный набор стековых значений, потребляемых вызовом (включая получателя, если таковой имеется).
Возвращает:
объект MethodHandleDesc, описывающий тип дескриптора метода

equals

boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство. Возвращает true тогда и только тогда, когда указанный объект также является MethodHandleDesc и оба кодируют одинаковое номинальное описание дескриптора метода.
Overrides:
equals в классе Object
Параметры:
o - другой объект
Возвращает:
равен ли этот дескриптор другому объекту
См. также:
  • Object.hashCode()
  • HashMap

© 1993, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/constant/MethodHandleDesc.html

Spec-Zone.ru

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