Класс Lookup
java.lang.Object
jdk.dynalink.linker.support.Lookup
public final class Lookup extends Object
Обёртка над
MethodHandles.Lookup, скрывающая проверяемые исключения. Она полезна в случаях, когда вы ищете методы в собственной кодовой базе (поэтому отсутствие таких методов считается ошибкой).- Начиная с:
- 9
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Lookup |
PUBLIC |
Канонический объект Lookup, оборачивающий MethodHandles.publicLookup(). |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Lookup |
Создаёт новый экземпляр, связанный с экземпляром MethodHandles.Lookup. |
Краткое описание методов
Подробное описание полей
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— метод, для которого нужно получить дескриптор методом unreflect - Возвращает:
- дескриптор метода, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если метод недоступен.
unreflect
public static MethodHandle unreflect(MethodHandles.Lookup lookup, Method m)
Выполняет
MethodHandles.Lookup.unreflect(Method), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError.- Параметры:
-
lookup— объект поиска, используемый для получения дескриптора методом unreflect -
m— метод, для которого нужно получить дескриптор методом unreflect - Возвращает:
- дескриптор метода, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если метод недоступен.
unreflectGetter
public MethodHandle unreflectGetter(Field f)
Выполняет
MethodHandles.Lookup.unreflectGetter(Field), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError.- Параметры:
-
f— поле, для которого получается дескриптор метода чтения - Возвращает:
- дескриптор метода чтения поля, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если метод чтения недоступен.
findGetter
public MethodHandle findGetter(Class<?> refc, String name, Class<?> type)
Выполняет
MethodHandles.Lookup.findGetter(Class, String, Class), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError, а исключения NoSuchFieldException — в ошибки NoSuchFieldError.- Параметры:
-
refc— класс, объявляющий поле -
name— имя поля -
type— тип поля - Возвращает:
- дескриптор метода чтения поля, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если поле недоступно. -
NoSuchFieldError— если поле не существует.
unreflectSetter
public MethodHandle unreflectSetter(Field f)
Выполняет
MethodHandles.Lookup.unreflectSetter(Field), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError.- Параметры:
-
f— поле, для которого получается дескриптор метода записи - Возвращает:
- дескриптор метода записи поля, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если поле недоступно. -
NoSuchFieldError— если поле не существует.
unreflectConstructor
public MethodHandle unreflectConstructor(Constructor<?> c)
Выполняет
MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError.- Параметры:
-
c— конструктор, для которого нужно получить дескриптор методом unreflect - Возвращает:
- дескриптор конструктора, полученный методом unreflect.
- Вызывает:
-
IllegalAccessError— если конструктор недоступен.
unreflectConstructor
public static MethodHandle unreflectConstructor(MethodHandles.Lookup lookup, Constructor<?> c)
Выполняет
MethodHandles.Lookup.unreflectConstructor(Constructor), преобразуя возникшие исключения IllegalAccessException в ошибки IllegalAccessError.- Параметры:
-
lookup— объект поиска, используемый для получения дескриптора методом unreflect -
c— конструктор, для которого нужно получить дескриптор методом unreflect - Возвращает:
- дескриптор конструктора, полученный методом unreflect.
- Вызывает:
-
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, 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://docs.oracle.com/en/java/javase/25/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Lookup.html