Класс Lookup

public final class Lookup
extends Object

Обёртка вокруг MethodHandles.Lookup, маскирующая исключения с проверкой. Она полезна в тех случаях, когда вы ищете методы внутри собственного кода (в противном случае это ошибка, если они отсутствуют).

Поля

Модификатор и тип Поле Описание
static Lookup PUBLIC

Канонический объект Lookup, который оборачивает MethodHandles.publicLookup().

Конструкторы

Конструктор Описание
Lookup​(MethodHandles.Lookup lookup)

Создаёт новый экземпляр, привязанный к экземпляру MethodHandles.Lookup.

Методы

Модификатор и тип Метод Описание
MethodHandle findGetter​(Class<?> refc, String name, Class<?> type)

Выполняет MethodHandles.Lookup.findGetter(Class, String, Class), преобразуя любые встреченные IllegalAccessException в IllegalAccessError и NoSuchFieldException в NoSuchFieldError.

static MethodHandle findOwnSpecial​(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)

Используя указанный lookup, находит метод в классе с помощью findSpecial(Class, String, MethodType).

MethodHandle findOwnSpecial​(String name, Class<?> rtype, Class<?>... ptypes)

Находит метод в классе с помощью findSpecial(Class, String, MethodType).

static MethodHandle findOwnStatic​(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)

Используя указанный lookup, находит метод в классе с помощью findStatic(Class, String, MethodType).

MethodHandle findOwnStatic​(String name, Class<?> rtype, Class<?>... ptypes)

Находит метод в классе с помощью findStatic(Class, String, MethodType).

MethodHandle findSpecial​(Class<?> declaringClass, String name, MethodType type)

Выполняет MethodHandles.Lookup.findSpecial(Class, String, MethodType, Class) на базовом lookup.

MethodHandle findStatic​(Class<?> declaringClass, String name, MethodType type)

Выполняет MethodHandles.Lookup.findStatic(Class, String, MethodType) на базовом lookup.

MethodHandle findVirtual​(Class<?> declaringClass, String name, MethodType type)

Выполняет MethodHandles.Lookup.findVirtual(Class, String, MethodType) на базовом lookup.

static MethodHandle unreflect​(MethodHandles.Lookup lookup, Method m)

Выполняет MethodHandles.Lookup.unreflect(Method), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

MethodHandle unreflect​(Method m)

Выполняет MethodHandles.Lookup.unreflect(Method), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

static MethodHandle unreflectConstructor​(MethodHandles.Lookup lookup, Constructor<?> c)

Выполняет MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

MethodHandle unreflectConstructor​(Constructor<?> c)

Выполняет MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

MethodHandle unreflectGetter​(Field f)

Выполняет MethodHandles.Lookup.unreflectGetter(Field), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

MethodHandle unreflectSetter​(Field f)

Выполняет MethodHandles.Lookup.unreflectSetter(Field), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

PUBLIC

public static final Lookup PUBLIC

Канонический объект Lookup, который оборачивает MethodHandles.publicLookup().

Конструкторы

Lookup

public Lookup(MethodHandles.Lookup lookup)

Создаёт новый экземпляр, привязанный к экземпляру MethodHandles.Lookup.

Параметры:
lookup - делегируемый MethodHandles.Lookup.

Методы

unreflect

public MethodHandle unreflect(Method m)

Выполняет MethodHandles.Lookup.unreflect(Method), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
m - метод, который нужно разыменовать
Возвращает:
обработчик разыменованного метода.
Исключение:
IllegalAccessError - если метод недоступен.

unreflect

public static MethodHandle unreflect(MethodHandles.Lookup lookup,
                                     Method m)

Выполняет MethodHandles.Lookup.unreflect(Method), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
lookup - поиск, используемый для разыменования
m - метод, который нужно разыменовать
Возвращает:
обработчик разыменованного метода.
Исключение:
IllegalAccessError - если метод недоступен.

unreflectGetter

public MethodHandle unreflectGetter(Field f)

Выполняет MethodHandles.Lookup.unreflectGetter(Field), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
f - поле, для которого создаётся обработчик получения
Возвращает:
обработчик получения разыменованного поля.
Исключение:
IllegalAccessError - если метод получения недоступен.

findGetter

public MethodHandle findGetter(Class<?> refc,
                               String name,
                               Class<?> type)

Выполняет MethodHandles.Lookup.findGetter(Class, String, Class), преобразуя любые встреченные IllegalAccessException в IllegalAccessError и NoSuchFieldException в NoSuchFieldError.

Параметры:
refc - класс, в котором объявлено поле
name - имя поля
type - тип поля
Возвращает:
обработчик получения разыменованного поля.
Исключение:
IllegalAccessError - если поле недоступно.
NoSuchFieldError - если поле не существует.

unreflectSetter

public MethodHandle unreflectSetter(Field f)

Выполняет MethodHandles.Lookup.unreflectSetter(Field), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
f - поле, для которого создаётся обработчик установки
Возвращает:
обработчик установки разыменованного поля.
Исключение:
IllegalAccessError - если поле недоступно.
NoSuchFieldError - если поле не существует.

unreflectConstructor

public MethodHandle unreflectConstructor(Constructor<?> c)

Выполняет MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
c - конструктор, который нужно разыменовать
Возвращает:
обработчик разыменованного конструктора.
Исключение:
IllegalAccessError - если конструктор недоступен.

unreflectConstructor

public static MethodHandle unreflectConstructor(MethodHandles.Lookup lookup,
                                                Constructor<?> c)

Выполняет MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.

Параметры:
lookup - поиск, используемый для разыменования
c - конструктор, который нужно разыменовать
Возвращает:
обработчик разыменованного конструктора.
Исключение:
IllegalAccessError - если конструктор недоступен.

findSpecial

public MethodHandle findSpecial(Class<?> declaringClass,
                                String name,
                                MethodType type)

Выполняет MethodHandles.Lookup.findSpecial(Class, String, MethodType, Class) в базовом поиске. Преобразует любые встреченные IllegalAccessException в IllegalAccessError и NoSuchMethodException в NoSuchMethodError.

Параметры:
declaringClass - класс, в котором объявлена методика
name - имя метода
type - тип метода
Возвращает:
обработчик метода
Исключение:
IllegalAccessError - если метод недоступен.
NoSuchMethodError - если метод не существует.

findStatic

public MethodHandle findStatic(Class<?> declaringClass,
                               String name,
                               MethodType type)

Выполняет MethodHandles.Lookup.findStatic(Class, String, MethodType) в базовом поиске. Преобразует любые встреченные IllegalAccessException в IllegalAccessError и NoSuchMethodException в NoSuchMethodError.

Параметры:
declaringClass - класс, в котором объявлена методика
name - имя метода
type - тип метода
Возвращает:
обработчик метода
Исключение:
IllegalAccessError - если метод недоступен.
NoSuchMethodError - если метод не существует.

findVirtual

public MethodHandle findVirtual(Class<?> declaringClass,
                                String name,
                                MethodType type)

Выполняет MethodHandles.Lookup.findVirtual(Class, String, MethodType) в базовом поиске. Преобразует любые встреченные IllegalAccessException в IllegalAccessError и NoSuchMethodException в NoSuchMethodError.

Параметры:
declaringClass - класс, в котором объявлена методика
name - имя метода
type - тип метода
Возвращает:
обработчик метода
Исключение:
IllegalAccessError - если метод недоступен.
NoSuchMethodError - если метод не существует.

findOwnSpecial

public static MethodHandle findOwnSpecial(MethodHandles.Lookup lookup,
                                          String name,
                                          Class<?> rtype,
                                          Class<?>... ptypes)

Используя findSpecial(Class, String, MethodType), находит метод в классе данного поиска. Полезно в коде классов для удобного связывания со своими закрытыми методами.

Параметры:
lookup - поиск для класса
name - имя метода
rtype - возвращаемый тип метода
ptypes - типы параметров метода
Возвращает:
обработчик метода

findOwnSpecial

public MethodHandle findOwnSpecial(String name,
                                   Class<?> rtype,
                                   Class<?>... ptypes)

Находит метод в классе данного поиска с помощью findSpecial(Class, String, MethodType). Полезно в коде классов для удобного связывания со своими закрытыми методами. Также удобнее, чем findSpecial, поскольку вы можете просто указать типы параметров, а не класс поиска.

Параметры:
name - имя метода
rtype - возвращаемый тип метода
ptypes - типы параметров метода
Возвращает:
обработчик метода

findOwnStatic

public static MethodHandle findOwnStatic(MethodHandles.Lookup lookup,
                                         String name,
                                         Class<?> rtype,
                                         Class<?>... ptypes)

Используя findStatic(Class, String, MethodType), находит статический метод в классе данного поиска. Полезно в коде классов для удобного связывания со своими закрытыми методами. Удобнее использовать, чем findStatic, поскольку вы можете просто указать типы параметров, а не класс поиска.

Параметры:
lookup - поиск класса
name - имя метода
rtype - тип возвращаемого значения метода
ptypes - типы параметров метода
Возвращает:
обработчик метода

findOwnStatic

public MethodHandle findOwnStatic(String name,
                                  Class<?> rtype,
                                  Class<?>... ptypes)

Находит метод в классе, используя findStatic(Class, String, MethodType). Полезно для удобной ссылки на собственные закрытые методы класса. Более удобный вариант, чем findStatic, так как вам нужно только указать типы параметров, а не класс поиска.

Параметры:
name - имя метода
rtype - тип возвращаемого значения метода
ptypes - типы параметров метода
Возвращает:
обработчик метода

© 1993, 2020, 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/11/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Lookup.html

Spec-Zone .ru
спецификации, руководства, описания, API