- java.lang.Object
-
- jdk.dynalink.linker.support.Lookup
-
public final class Lookup extends Object
一个封装MethodHandles.Lookup
,掩盖了检查的异常。 在这些情况下,当您在自己的代码库中查找方法(因此,如果它们不存在则是错误的)。
-
-
Field Summary
Fields Modifier and Type Field 描述 static Lookup
PUBLIC
一个包含MethodHandles.publicLookup()
的规范Lookup对象。
-
构造方法摘要
构造方法 Constructor 描述 Lookup(MethodHandles.Lookup lookup)
创建一个新实例,绑定到一个MethodHandles.Lookup
的实例。
-
方法摘要
-
-
-
字段详细信息
-
PUBLIC
public static final Lookup PUBLIC
一个包含MethodHandles.publicLookup()
的规范Lookup对象。
-
-
构造方法详细信息
-
Lookup
public Lookup(MethodHandles.Lookup lookup)
创建一个新实例,绑定到一个MethodHandles.Lookup
的实例。- 参数
-
lookup
- 它代表的MethodHandles.Lookup
。
-
-
方法详细信息
-
unreflect
public MethodHandle unreflect(方法 m)
- 参数
-
m
- 不反映的方法 - 结果
- 未反映的方法句柄。
- 异常
-
IllegalAccessError
- 如果方法不可访问。
-
unreflect
public static MethodHandle unreflect(MethodHandles.Lookup lookup, 方法 m)
- 参数
-
lookup
- 用于不反映的查找 -
m
- 不反映的方法 - 结果
- 未反映的方法句柄。
- 异常
-
IllegalAccessError
- 如果方法不可访问。
-
unreflectGetter
public MethodHandle unreflectGetter(Field f)
- 参数
-
f
- 吸气剂不被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)
- 参数
-
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
- 方法的参数类型 - 结果
- the method handle for the method
-
-