MethodHandles.DropArgumentsToMatch 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调整目标方法句柄以匹配给定的参数类型列表。
[Android.Runtime.Register("dropArgumentsToMatch", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;", "", ApiSince=33)]
public static Java.Lang.Invoke.MethodHandle? DropArgumentsToMatch(Java.Lang.Invoke.MethodHandle? target, int skip, System.Collections.Generic.IList<Java.Lang.Class>? newTypes, int pos);
[<Android.Runtime.Register("dropArgumentsToMatch", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;", "", ApiSince=33)>]
static member DropArgumentsToMatch : Java.Lang.Invoke.MethodHandle * int * System.Collections.Generic.IList<Java.Lang.Class> * int -> Java.Lang.Invoke.MethodHandle
参数
- target
- MethodHandle
要适应的方法句柄
- skip
- Int32
要忽略的目标参数数(它们将保持不变)
- pos
- Int32
newTypes
位于必须发生非跳过的目标参数的位置
返回
可能调整的方法句柄
- 属性
注解
调整目标方法句柄以匹配给定的参数类型列表。 如有必要,请添加占位符参数。 在匹配开始之前,可以跳过一些前导参数。 参数类型列表中的其余类型target
必须是位于起始位置pos
的类型列表的newTypes
子列表。 生成的句柄将具有目标句柄的参数类型列表,其中任何非匹配参数类型(在匹配子列表之前或之后)插入到目标的原始参数的相应位置,就像按原 #dropArguments(MethodHandle, int, Class[])
样。
生成的句柄将具有与目标句柄相同的返回类型。
在更正式的术语中,假设这两个类型列表:<ul<>li>目标句柄具有参数类型列表S..., M...
,其中的类型数量与所skip
指示的类型数S
相同。 类型 M
应与给定类型列表 newTypes
的一部分匹配。 <li>列表 newTypes
包含类型 P..., M..., A...
,其类型数 P
与所 pos
指示的类型数相同。 这些 M
类型正是 M
目标句柄参数类型列表中的类型应匹配的类型。 这些 A
类型是在匹配的子列表之后找到的其他类型。 </ul> 鉴于这些假设,调用 dropArgumentsToMatch
的结果将具有参数类型列表 S..., P..., M..., A...
,并且 P
插入的类型 A
与按如下所示 #dropArguments(MethodHandle, int, Class[])
。
已在 9 中添加。
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。