MethodHandles.Invoker(MethodType) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
生成特殊的 <em>invoker 方法句柄/em>,该句柄可用于调用与给定类型兼容的任何方法句柄<,就像按此方式一MethodHandle#invoke invoke样。
[Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? Invoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member Invoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
参数
- type
- MethodType
所需的目标类型
返回
适用于调用可转换为给定类型的任何方法句柄的方法句柄
- 属性
注解
生成特殊的 <em>invoker 方法句柄/em>,该句柄可用于调用与给定类型兼容的任何方法句柄<,就像按此方式一MethodHandle#invoke invoke样。 生成的调用方将具有与所需类型完全相等的类型,只不过它将接受类型的 MethodHandle附加前导参数。
在调用其目标之前,如果目标与预期类型不同,则调用方将根据需要应用引用转换,并根据需要应用 box、unbox 或扩展基元值,就好像按原 MethodHandle#asType asType样。 同样,将根据需要转换返回值。 如果目标是 MethodHandle#asVarargsCollector 变量 arity 方法句柄,则会再次进行所需的 arity 转换,就像按原 MethodHandle#asType asType样。
此方法等效于以下代码(尽管可能更高效): publicLookup().findVirtual(MethodHandle.class, "invoke", type)
<em>Discussion:</em> A MethodType#genericMethodType 常规方法类型是一种仅 Object 提及参数和返回值的方法类型。 此类类型的调用程序能够调用与常规类型相同的任何方法句柄。
<em>(注意:调用程序方法无法通过核心反射 API 使用。尝试在声明invokeExactinvoke的或方法上调用 java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke 将引发 .)<java.lang.UnsupportedOperationException UnsupportedOperationException/em>
此方法不引发反射或安全异常。
Java文档java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType)。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。