- java.lang.Object
-
- jdk.dynalink.linker.support.Lookup
-
public final class Lookup extends Object
MethodHandles.Lookup
周围的包装器,用于屏蔽已检查的异常。 当您在自己的代码库中查找方法时,它非常有用(因此如果它们不存在则会出错)。
-
-
字段汇总
字段 变量和类型 字段 描述 static Lookup
PUBLIC
包装MethodHandles.publicLookup()
的规范Lookup对象。
-
构造方法摘要
构造方法 构造器 描述 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
- 用于lookup
的查找 -
m
- 未反映的方法 - 结果
- 未反射的方法句柄。
- 异常
-
IllegalAccessError
- 如果方法不可访问。
-
unreflectGetter
public MethodHandle unreflectGetter(字段 f)
- 参数
-
f
- 未f
的getter字段 - 结果
- 未反射的字段getter句柄。
- 异常
-
IllegalAccessError
- 如果吸气剂无法进入。
-
findGetter
public MethodHandle findGetter(类<?> refc, String name, 类<?> type)
执行MethodHandles.Lookup.findGetter(Class, String, Class)
,将遇到的任何IllegalAccessException
转换为IllegalAccessError
和NoSuchFieldException
转换为NoSuchFieldError
。- 参数
-
refc
- 声明该字段的类 -
name
- 字段的名称 -
type
- 字段的类型 - 结果
- 未反射的字段getter句柄。
- 异常
-
IllegalAccessError
- 如果该字段不可访问。 -
NoSuchFieldError
- 如果该字段不存在。
-
unreflectSetter
public MethodHandle unreflectSetter(字段 f)
- 参数
-
f
- 未设置setter的字段 - 结果
- 未反射的字段设置器句柄。
- 异常
-
IllegalAccessError
- 如果该字段不可访问。 -
NoSuchFieldError
- 如果该字段不存在。
-
unreflectConstructor
public MethodHandle unreflectConstructor(构造器<?> c)
执行MethodHandles.Lookup.unreflectConstructor(Constructor)
,将遇到的任何IllegalAccessException
转换为IllegalAccessError
。- 参数
-
c
- 要反映的构造函数 - 结果
- 未反射的构造函数句柄。
- 异常
-
IllegalAccessError
- 如果构造函数不可访问。
-
unreflectConstructor
public static MethodHandle unreflectConstructor(MethodHandles.Lookup lookup, 构造器<?> c)
执行MethodHandles.Lookup.unreflectConstructor(Constructor)
,将遇到的任何IllegalAccessException
转换为IllegalAccessError
。- 参数
-
lookup
- 用于lookup
的查找 -
c
- 要反映的构造函数 - 结果
- 未反射的构造函数句柄。
- 异常
-
IllegalAccessError
- 如果构造函数不可访问。
-
findSpecial
public MethodHandle findSpecial(类<?> 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(类<?> declaringClass, String name, MethodType type)
在基础查找上执行MethodHandles.Lookup.findStatic(Class, String, MethodType)
。 将遇到的任何IllegalAccessException
转换为IllegalAccessError
,将NoSuchMethodException
转换为NoSuchMethodError
。- 参数
-
declaringClass
- 声明方法的类 -
name
- 方法的名称 -
type
- 方法的类型 - 结果
- 该方法的方法句柄
- 异常
-
IllegalAccessError
- 如果方法不可访问。 -
NoSuchMethodError
- 如果该方法不存在。
-
findVirtual
public MethodHandle findVirtual(类<?> 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, 类<?> rtype, 类<?>... ptypes)
给定查找,找到在该查找类上使用findSpecial(Class, String, MethodType)
方法。 在类的代码中很有用,可以方便地链接到自己的私有代码。- 参数
-
lookup
- 该类的查找 -
name
- 方法的名称 -
rtype
- 方法的返回类型 -
ptypes
- 方法的参数类型 - 结果
- 方法的方法句柄
-
findOwnSpecial
public MethodHandle findOwnSpecial(String name, 类<?> rtype, 类<?>... ptypes)
在该查找类上查找使用findSpecial(Class, String, MethodType)
方法。 在类的代码中很有用,可以方便地链接到自己的私有代码。 它比findSpecial
更方便,因为你可以只列出参数类型,而不必指定查找类。- 参数
-
name
- 方法的名称 -
rtype
- 方法的返回类型 -
ptypes
- 方法的参数类型 - 结果
- 方法的方法句柄
-
findOwnStatic
public static MethodHandle findOwnStatic(MethodHandles.Lookup lookup, String name, 类<?> rtype, 类<?>... ptypes)
给定查找,找到在该查找类上使用findStatic(Class, String, MethodType)
方法。 在类的代码中很有用,可以方便地链接到自己的私有代码。 它比findStatic
更容易使用,因为您只需列出参数类型,而不必指定查找类。- 参数
-
lookup
- 该类的查找 -
name
- 方法的名称 -
rtype
- 方法的返回类型 -
ptypes
- 方法的参数类型 - 结果
- 方法的方法句柄
-
findOwnStatic
public MethodHandle findOwnStatic(String name, 类<?> rtype, 类<?>... ptypes)
在该查找类上查找使用findStatic(Class, String, MethodType)
方法。 在类的代码中很有用,可以方便地链接到自己的私有代码。 它比findStatic
更容易使用,因为您可以只列出参数类型,而不必指定查找类。- 参数
-
name
- 方法的名称 -
rtype
- 方法的返回类型 -
ptypes
- 方法的参数类型 - 结果
- the method handle for the method
-
-