- java.lang.Object
-  
      - jdk.dynalink.linker.GuardedInvocation
 
-  
       
 
 public class GuardedInvocation extends Object 表示有条件的有效方法句柄。 通常产生的返回值为GuardingDynamicLinker.getGuardedInvocation(LinkRequest, LinkerServices)和GuardingTypeConverterFactory.convertToType(Class, Class, Supplier)。 它是一个调用方法句柄的不可变元组,一个保护方法句柄,它定义了调用句柄的适用性,可以用于调用句柄的外部无效的零个或多个切换点,以及如果在方法句柄的调用也使其无效。 如果保护句柄为其参数返回true,并且只要任何一个切换点都无效,并且只要不抛出指定类型的异常,则调用句柄适用于调用。 保护,切换点和异常类型都是可选的(无条件调用无条件有效)。
-  
        
       -  
             构造方法摘要构造方法 Constructor 描述 GuardedInvocation(MethodHandle invocation)创建一个新的无条件守卫调用。GuardedInvocation(MethodHandle invocation, MethodHandle guard)创建一个新的守卫调用,具有保护方法句柄。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint)创建一个新的守卫调用,同时具有保护方法句柄和可用于使其无效的切换点。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception)创建一个新的有保护的调用,具有保护方法句柄,可以使用任何数量的切换点来使其无效,以及如果在调用时抛出的异常也会使其失效。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception)创建一个新的守卫调用,具有保护方法句柄,可用于使其无效的切换点,以及如果在调用时抛出也会使其失效的异常。GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint)创建一个新的受保护的调用,可以由切换点无效。
 -  
             方法摘要
 
-  
             
-  
        
       -  
             构造方法详细信息-  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation) 创建一个新的无条件守卫调用。 它是无条件的,因为它没有无效。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
- 异常
-  
              NullPointerException- 如果调用为空。
 
 -  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation, MethodHandle guard) 创建一个新的守卫调用,具有保护方法句柄。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
-  
              guard- 表示守卫的方法句柄。 必须与兼容invocation把手按MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)。 对于一些有用的守卫,请查看Guards课程。 它可以为null表示无条件调用。
- 异常
-  
              NullPointerException- 如果调用为空。
 
 -  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint) 创建一个新的受保护的调用,可以由切换点无效。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
-  
              switchPoint- 可用于使此链接无效的可选切换点。 它可以为空。 如果为空,则表示无条件调用。
- 异常
-  
              NullPointerException- 如果调用为空。
 
 -  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint) 创建一个新的守卫调用,同时具有保护方法句柄和可用于使其无效的切换点。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
-  
              guard- 代表守卫的方法句柄。 必须与兼容invocation把手按MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)。 对于一些有用的守卫,请查看Guards类。 它可以为空。 如果它和切换点都为空,则表示无条件调用。
-  
              switchPoint- 可用于使此链接无效的可选开关点。
- 异常
-  
              NullPointerException- 如果调用为null。
 
 -  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception) 创建一个新的守卫调用,具有保护方法句柄,可用于使其无效的切换点,以及如果在调用时抛出也会使其失效的异常。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
-  
              guard- 表示守卫的方法句柄。 必须符合invocation句柄, 符合MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)。 对于一些有用的守卫,请查看Guards课程。 它可以为空。 如果它和切换点和异常都为空,则表示无条件调用。
-  
              switchPoint- 可用于使此链接无效的可选切换点。
-  
              exception- 调用抛出的可选异常类型也使其无效。
- 异常
-  
              NullPointerException- 如果调用为空。
 
 -  GuardedInvocationpublic GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception) 创建一个新的有保护的调用,具有保护方法句柄,可以使用任何数量的切换点来使其无效,以及如果在调用时抛出的异常也会使其失效。- 参数
-  
              invocation- 表示调用的方法句柄。 不能为空。
-  
              guard- 表示守卫的方法句柄。 必须符合invocation手柄, 符合MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)。 对于一些有用的守卫,请查看Guards课程。 它可以为空。 如果它和异常都为空,并且没有指定切换点,则表示无条件调用。
-  
              switchPoints- 可用于使此链接无效的可选切换点。
-  
              exception- 调用抛出的可选异常类型也使其无效。
- 异常
-  
              NullPointerException- 如果调用为空。
 
 
-  
 -  
             方法详细信息-  getInvocationpublic MethodHandle getInvocation() 返回调用方法句柄。- 结果
- 调用方法句柄。 它永远不会为空。
 
 -  getGuardpublic MethodHandle getGuard() 返回保护方法句柄。- 结果
- 防护方法手柄。 可以为null。
 
 -  getSwitchPointspublic SwitchPoint[] getSwitchPoints() 返回可用于使该调用句柄的链接无效的切换点。- 结果
- 可用于使此调用句柄的链接无效的开关点。 可以为null。
 
 -  getExceptionpublic Class<? extends Throwable> getException() 返回异常类型,如果调用抛出应该使该被守卫的调用的链接失效。- 结果
- 应该使用抛出的异常类型来使链接失效。 可以为null。
 
 -  hasBeenInvalidatedpublic boolean hasBeenInvalidated() 当且仅当该被守卫的调用至少有一个无效的切换点时才返回true。- 结果
- 如果且仅当此保护调用至少有一个无效的切换点,则为真。
 
 -  replaceMethodspublic GuardedInvocation replaceMethods(MethodHandle newInvocation, MethodHandle newGuard) 用不同的方法创建一个新的守卫调用,保留切换点。- 参数
-  
              newInvocation- 新的调用
-  
              newGuard- 新卫兵
- 结果
- 一个新的被保护的调用与替换的方法和与这个调用相同的切换点。
 
 -  addSwitchPointpublic GuardedInvocation addSwitchPoint(SwitchPoint newSwitchPoint) 使用添加的切换点创建新的守卫调用。- 参数
-  
              newSwitchPoint- 新开关点。 可以为null,在这种情况下,此方法将返回当前受保护的调用,而不进行任何更改。
- 结果
- 一个被保护的调用与添加的切换点。
 
 -  asTypepublic GuardedInvocation asType(MethodType newType) 更改调用的类型,就好像MethodHandle.asType(MethodType)应用于其调用及其保护,如果它有一个(返回类型更改为布尔值,并且参数计数可能被截断为保护)。 如果调用已经是必需的类型,则返回此对象。- 参数
-  
              newType- 新的调用类型。
- 结果
- 使用新类型的守卫调用。
 
 -  asTypepublic GuardedInvocation asType(LinkerServices linkerServices, MethodType newType) 更改调用的类型,就好像LinkerServices.asType(MethodHandle, MethodType)被应用于其调用及其保护(如果它有一个(返回类型更改为布尔值,并且参数计数可能被截断为保护))。 如果调用已经是必需的类型,则返回此对象。- 参数
-  
              linkerServices- 用于转换的链接器服务
-  
              newType- 新的调用类型。
- 结果
- 使用新类型的守卫调用。
 
 -  asTypeSafeReturnpublic GuardedInvocation asTypeSafeReturn(LinkerServices linkerServices, MethodType newType) 改变调用的类型,仿佛LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)施加到它的调用和LinkerServices.asType(MethodHandle, MethodType)施加到其后卫,如果它有一个(与返回类型更改为布尔型,和参数计数潜在截断,挡板)。 如果调用不更改其类型,则返回此对象。- 参数
-  
              linkerServices- 用于转换的链接器服务
-  
              newType- 新的调用类型。
- 结果
- 使用新类型的守卫调用。
 
 -  asTypepublic GuardedInvocation asType(CallSiteDescriptor desc) 更改调用的类型,就好像MethodHandle.asType(MethodType)应用于其调用及其保护,如果它有一个(返回类型更改为布尔值守 )。 如果调用已经是必需的类型,则返回此对象。- 参数
-  
              desc- 调用方法类型的调用描述符。
- 结果
- 使用新类型的守卫调用。
 
 -  filterArgumentspublic GuardedInvocation filterArguments(int pos, MethodHandle... filters) 将参数过滤器应用于调用和保护(如果存在且具有至少pos + 1参数)与MethodHandles.filterArguments(MethodHandle, int, MethodHandle...)。- 参数
-  
              pos- 第一个参数的位置被过滤
-  
              filters- 参数过滤器
- 结果
- 已过滤的调用
 
 -  dropArgumentspublic GuardedInvocation dropArguments(int pos, List<Class<?>> valueTypes) - 参数
-  
              pos- 第一个参数的位置被删除
-  
              valueTypes- 要删除的值的类型
- 结果
- 一个删除参数的调用
 
 -  dropArgumentspublic GuardedInvocation dropArguments(int pos, Class<?>... valueTypes) - 参数
-  
              pos- 第一个参数的位置被删除
-  
              valueTypes- 正在删除的值的类型
- 结果
- 一个删除参数的调用
 
 -  composepublic MethodHandle compose(MethodHandle fallback) 将调用,保护,切换点和异常组合到复合方法句柄中,该句柄知道当保护失败或调用无效时如何退回。- 参数
-  
              fallback- 当切换点无效的后备方法句柄,保护返回false或抛出异常无效。
- 结果
- 一个复合方法句柄。
 
 -  composepublic MethodHandle compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback) 将调用,保护,切换点和异常组合到复合方法句柄中,该句柄知道当保护失败或调用无效时如何退回。- 参数
-  
              switchpointFallback- 在切换点无效的情况下的回退方法句柄。
-  
              guardFallback-guardFallback方法句柄在case guard返回false。
-  
              catchFallback- 异常处理程序触发时的后备方法。
- 结果
- 一个复合方法句柄。
 
 
-  
 
-