- java.lang.Object
-
- jdk.dynalink.linker.support.Lookup
-
public final class Lookup extends Object
一个封装MethodHandles.Lookup,掩盖了检查的异常。 在这些情况下,当您在自己的代码库中查找方法(因此,如果它们不存在则是错误的)。
-
-
Field Summary
Fields Modifier and Type Field 描述 static LookupPUBLIC一个包含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
-
-