java.lang.Object
jdk.dynalink.linker.support.Guards
为
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle) 创建典型守卫并调整其方法类型的实用方法。
-
方法总结
修饰符和类型方法描述static MethodHandleasType(MethodHandle test, MethodType type) 获取一个旨在用作守卫的方法句柄,并将其调整为请求的类型,但返回一个boolean。static MethodHandleasType(LinkerServices linkerServices, MethodHandle test, MethodType type) 获取一个旨在用作守卫的方法句柄,并将其调整为请求的类型,但返回一个boolean。static MethodHandlegetClassGuard(Class<?> clazz) 创建一个保护方法来测试其唯一参数是否属于特定的类。static MethodHandlegetIdentityGuard(Object obj) 创建一个保护方法,测试其唯一参数是否与另一个对象在引用上相同static MethodHandlegetInstanceOfGuard(Class<?> clazz) 创建一个保护方法,测试其唯一参数是否为特定类的实例。static MethodHandleisArray(int pos, MethodType type) 如果指定位置的参数是 Java 数组,则创建一个返回 true 的方法句柄。static MethodHandleisInstance(Class<?> clazz, int pos, MethodType type) 使用指定类型的参数创建方法句柄,但返回boolean。static MethodHandleisInstance(Class<?> clazz, MethodType type) 使用指定类型的参数创建方法句柄,但返回boolean。static MethodHandle返回一个测试第一个参数是否不为 null 的守卫。static MethodHandleisNull()返回一个测试第一个参数是否为 null 的守卫。static MethodHandleisOfClass(Class<?> clazz, MethodType type) 使用指定类型的参数创建一个守卫方法句柄,但返回boolean。
-
方法详情
-
isOfClass
使用指定类型的参数创建一个守卫方法句柄,但返回boolean。调用时,如果第一个参数属于指定类(恰好属于它,而不是子类),则返回 true。其余参数将被忽略。- 参数:
clazz- 要测试的第一个参数的类type- 方法类型- 返回:
- 一个方法处理测试它的第一个参数是否属于指定的类。
-
isInstance
使用指定类型的参数创建方法句柄,但返回boolean。调用时,如果第一个参数是指定类或其子类的实例,则返回 true)。其余参数将被忽略。- 参数:
clazz- 要测试的第一个参数的类type- 方法类型- 返回:
- 一个方法处理测试它的第一个参数是否属于指定的类或子类。
-
isInstance
使用指定类型的参数创建方法句柄,但返回boolean。调用时,如果第 n 个参数是指定类或其子类的实例,则返回 true。其余参数将被忽略。- 参数:
clazz- 要测试的第一个参数的类pos- 要测试的参数列表中的位置type- 方法类型- 返回:
- 一个方法处理测试它的第一个参数是否属于指定的类或子类。
-
isArray
如果指定位置的参数是 Java 数组,则创建一个返回 true 的方法句柄。- 参数:
pos- 点亮参数中的位置type- 句柄的方法类型- 返回:
- 如果指定位置的参数是 Java 数组,则返回 true 的方法句柄;其余参数将被忽略。
-
asType
获取一个旨在用作守卫的方法句柄,并将其调整为请求的类型,但返回一个boolean。应用MethodHandle.asType(MethodType)转换类型并使用MethodHandles.dropArguments(MethodHandle, int, Class...)匹配请求的类型元数。- 参数:
test- 测试方法句柄type- 方法句柄适应的类型- 返回:
- 适应的方法句柄
-
asType
public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type) 获取一个旨在用作守卫的方法句柄,并将其调整为请求的类型,但返回一个boolean。应用LinkerServices.asType(MethodHandle, MethodType)转换类型并使用MethodHandles.dropArguments(MethodHandle, int, Class...)匹配请求的类型元数。- 参数:
linkerServices- 用于类型转换的链接器服务test- 测试方法句柄type- 方法句柄适应的类型- 返回:
- 适应的方法句柄
-
getClassGuard
创建一个保护方法来测试其唯一参数是否属于特定的类。- 参数:
clazz- 要测试的类。- 返回:
- 所需的保护方法。
-
getInstanceOfGuard
创建一个保护方法,测试其唯一参数是否为特定类的实例。- 参数:
clazz- 要测试的类。- 返回:
- 所需的保护方法。
-
getIdentityGuard
创建一个保护方法,测试其唯一参数是否与另一个对象在引用上相同- 参数:
obj- 用作参考身份测试的对象- 返回:
- 所需的保护方法。
-
isNull
返回一个测试第一个参数是否为 null 的守卫。- 返回:
- 测试第一个参数是否为 null 的守卫。
-
isNotNull
返回一个测试第一个参数是否不为 null 的守卫。- 返回:
- 测试第一个参数是否不为空的守卫。
-