MethodHandles.DropArgumentsToMatch 方法

定义

调整目标方法句柄以匹配给定的参数类型列表。

[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

要忽略的目标参数数(它们将保持不变)

newTypes
IList<Class>

要匹配 target的参数类型列表的列表

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 中添加。

适用于 . 的 java.lang.invoke.MethodHandles.dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于