Класс 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- метод, который требуется преобразовать - Возвращает:
- делегированный обработчик метода.
- Исключения:
-
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- поле, для которого необходимо получить getter - Возвращает:
- обработчик getter поля.
- Исключения:
-
IllegalAccessError- если getter недоступен.
findGetter
public MethodHandle findGetter(Class<?> refc, String name, Class<?> type)
Выполняет
MethodHandles.Lookup.findGetter(Class, String, Class), преобразуя любые встреченные IllegalAccessException в IllegalAccessError и NoSuchFieldException в NoSuchFieldError.- Параметры:
-
refc- класс, объявляющий поле -
name- имя поля -
type- тип поля - Возвращает:
- обработчик getter поля.
- Исключения:
-
IllegalAccessError- если поле недоступно. -
NoSuchFieldError- если поле не существует.
unreflectSetter
public MethodHandle unreflectSetter(Field f)
Выполняет
MethodHandles.Lookup.unreflectSetter(Field), преобразуя любые встреченные IllegalAccessException в IllegalAccessError.- Параметры:
-
f- поле, для которого необходимо получить setter - Возвращает:
- обработчик setter поля.
- Исключения:
-
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.- Parameters:
-
declaringClass- класс, объявляющий метод -
name- имя метода -
type- тип метода - Returns:
- обработчик метода
- Throws:
-
IllegalAccessError- если метод недоступен. -
NoSuchMethodError- если метод не существует.
findOwnSpecial
public static MethodHandle findOwnSpecial(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)
На основе предоставленного представления, находит с помощью
findSpecial(Class, String, MethodType) метод в классе этого представления. Полезно в коде классов для удобной связи с собственными закрытыми методами.- Parameters:
-
lookup- представление для класса -
name- имя метода -
rtype- тип возвращаемого значения метода -
ptypes- типы параметров метода - Returns:
- обработчик метода
findOwnSpecial
public MethodHandle findOwnSpecial(String name, Class<?> rtype, Class<?>... ptypes)
Находит с помощью
findSpecial(Class, String, MethodType) метод в классе этого представления. Полезно в коде классов для удобной связи с собственными закрытыми методами. Также удобнее, чем findSpecial, поскольку вы можете просто перечислить типы параметров, и не нужно указывать класс представления.- Parameters:
-
name- имя метода -
rtype- тип возвращаемого значения метода -
ptypes- типы параметров метода - Returns:
- обработчик метода
findOwnStatic
public static MethodHandle findOwnStatic(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)
На основе предоставленного представления, находит с помощью
findStatic(Class, String, MethodType) статический метод в классе этого представления. Полезно в коде классов для удобной связи с собственными закрытыми методами. Удобнее, чем findStatic, так как вы можете просто указать типы параметров, и вам не нужно указывать класс представления.- Parameters:
-
lookup- представление для класса -
name- имя метода -
rtype- тип возвращаемого значения метода -
ptypes- типы параметров метода - Returns:
- обработчик метода
findOwnStatic
public MethodHandle findOwnStatic(String name, Class<?> rtype, Class<?>... ptypes)
Находит с помощью
findStatic(Class, String, MethodType) статический метод в классе этого представления. Полезно в коде классов для удобной связи с собственными закрытыми методами. Удобнее, чем findStatic, так как вы можете просто указать типы параметров, и вам не нужно указывать класс представления.- Parameters:
-
name- имя метода -
rtype- тип возвращаемого значения метода -
ptypes- типы параметров метода - Returns:
- обработчик метода
© 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/jdk.dynalink/jdk/dynalink/linker/support/Lookup.html