java.lang.Object
jdk.dynalink.linker.support.Lookup
MethodHandles.Lookup 的包装器,用于屏蔽已检查的异常。当您在自己的代码库中查找方法时,它在这些情况下很有用(因此,如果它们不存在则为错误)。
-
字段摘要
字段 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述findGetter(Class<?> refc, String name, Class<?> type) static MethodHandlefindOwnSpecial(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) 给定一个查找,使用findSpecial(Class, String, MethodType)查找该查找类的方法。findOwnSpecial(String name, Class<?> rtype, Class<?>... ptypes) 使用findSpecial(Class, String, MethodType)查找该查找类的方法。static MethodHandlefindOwnStatic(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) 给定一个查找,使用findStatic(Class, String, MethodType)查找该查找类的方法。findOwnStatic(String name, Class<?> rtype, Class<?>... ptypes) 使用findStatic(Class, String, MethodType)查找该查找类的方法。findSpecial(Class<?> declaringClass, String name, MethodType type) findStatic(Class<?> declaringClass, String name, MethodType type) findVirtual(Class<?> declaringClass, String name, MethodType type) static MethodHandleunreflect(MethodHandles.Lookup lookup, Method m) static MethodHandleunreflectConstructor(MethodHandles.Lookup lookup, Constructor<?> c)
-
字段详细信息
-
PUBLIC
包装MethodHandles.publicLookup()的规范查找对象。
-
-
构造方法详细信息
-
Lookup
创建一个新实例,绑定到MethodHandles.Lookup的实例。- 参数:
lookup- 它委托给的MethodHandles.Lookup。
-
-
方法详情
-
unreflect
- 参数:
m- 反省的方法- 返回:
- 未反映的方法句柄。
- 抛出:
IllegalAccessError- 如果该方法不可访问。
-
unreflect
- 参数:
lookup- 用于取消反射的查找m- 反省的方法- 返回:
- 未反映的方法句柄。
- 抛出:
IllegalAccessError- 如果该方法不可访问。
-
unreflectGetter
执行MethodHandles.Lookup.unreflectGetter(Field),将遇到的任何IllegalAccessException转换为IllegalAccessError。- 参数:
f- 未反映 getter 的字段- 返回:
- 未反射的场吸气剂句柄。
- 抛出:
IllegalAccessError- 如果 getter 不可访问。
-
findGetter
执行MethodHandles.Lookup.findGetter(Class, String, Class),将遇到的任何IllegalAccessException转换为IllegalAccessError并将NoSuchFieldException转换为NoSuchFieldError。- 参数:
refc- 声明字段的类name- 字段名称type- 字段类型- 返回:
- 未反射的场吸气剂句柄。
- 抛出:
IllegalAccessError- 如果该字段不可访问。NoSuchFieldError- 如果字段不存在。
-
unreflectSetter
执行MethodHandles.Lookup.unreflectSetter(Field),将遇到的任何IllegalAccessException转换为IllegalAccessError。- 参数:
f- 未反映 setter 的字段- 返回:
- 未反射的字段设置器句柄。
- 抛出:
IllegalAccessError- 如果该字段不可访问。NoSuchFieldError- 如果字段不存在。
-
unreflectConstructor
执行MethodHandles.Lookup.unreflectConstructor(Constructor),将遇到的任何IllegalAccessException转换为IllegalAccessError。- 参数:
c- 取消反射的构造函数- 返回:
- 未反射的构造方法句柄。
- 抛出:
IllegalAccessError- 如果构造函数不可访问。
-
unreflectConstructor
执行MethodHandles.Lookup.unreflectConstructor(Constructor),将遇到的任何IllegalAccessException转换为IllegalAccessError。- 参数:
lookup- 用于取消反射的查找c- 取消反射的构造函数- 返回:
- 未反射的构造方法句柄。
- 抛出:
IllegalAccessError- 如果构造函数不可访问。
-
findSpecial
对底层查找执行MethodHandles.Lookup.findSpecial(Class, String, MethodType, Class)。将遇到的任何IllegalAccessException转换为IllegalAccessError并将NoSuchMethodException转换为NoSuchMethodError。- 参数:
declaringClass- 声明方法的类name- 方法的名称type- 方法的类型- 返回:
- 方法的方法句柄
- 抛出:
IllegalAccessError- 如果该方法不可访问。NoSuchMethodError- 如果该方法不存在。
-
findStatic
对基础查找执行MethodHandles.Lookup.findStatic(Class, String, MethodType)。将遇到的任何IllegalAccessException转换为IllegalAccessError并将NoSuchMethodException转换为NoSuchMethodError。- 参数:
declaringClass- 声明方法的类name- 方法的名称type- 方法的类型- 返回:
- 方法的方法句柄
- 抛出:
IllegalAccessError- 如果该方法不可访问。NoSuchMethodError- 如果该方法不存在。
-
findVirtual
对基础查找执行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
使用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
使用findStatic(Class, String, MethodType)查找该查找类的方法。在类的代码中很有用,可以方便地链接到它们自己的私有代码。它比findStatic更容易使用,因为您可以只列出参数类型,而不必指定查找类。- 参数:
name- 方法的名称rtype- 方法的返回类型ptypes- 方法的参数类型- 返回:
- 方法的方法句柄
-