MethodHandles.DropArguments 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| DropArguments(MethodHandle, Int32, Class[]) |
生成一个方法句柄,该方法将在调用其他一些指定的 目标 方法句柄之前放弃一些虚拟参数。 |
| DropArguments(MethodHandle, Int32, IList<Class>) |
生成一个方法句柄,该方法将在调用其他一些指定的 目标 方法句柄之前放弃某些占位符参数。 |
DropArguments(MethodHandle, Int32, Class[])
生成一个方法句柄,该方法将在调用其他一些指定的 目标 方法句柄之前放弃一些虚拟参数。
[Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? DropArguments(Java.Lang.Invoke.MethodHandle? target, int pos, params Java.Lang.Class[]? valueTypes);
[<Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member DropArguments : Java.Lang.Invoke.MethodHandle * int * Java.Lang.Class[] -> Java.Lang.Invoke.MethodHandle
参数
- target
- MethodHandle
删除参数后要调用的方法句柄
- pos
- Int32
要删除的第一个参数的位置(最左边的零)
- valueTypes
- Class[]
要删除的参数的类型(s)
返回
在调用原始方法句柄之前,该方法句柄会删除给定类型的参数
- 属性
注解
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
适用于
DropArguments(MethodHandle, Int32, IList<Class>)
生成一个方法句柄,该方法将在调用其他一些指定的 目标 方法句柄之前放弃某些占位符参数。
[Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? DropArguments(Java.Lang.Invoke.MethodHandle? target, int pos, System.Collections.Generic.IList<Java.Lang.Class>? valueTypes);
[<Android.Runtime.Register("dropArguments", "(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member DropArguments : Java.Lang.Invoke.MethodHandle * int * System.Collections.Generic.IList<Java.Lang.Class> -> Java.Lang.Invoke.MethodHandle
参数
- target
- MethodHandle
删除参数后要调用的方法句柄
- pos
- Int32
要删除的第一个参数的位置(最左边的零)
返回
在调用原始方法句柄之前,该方法句柄会删除给定类型的参数
- 属性
注解
生成一个方法句柄,该方法将在调用其他一些指定的 目标 方法句柄之前放弃某些占位符参数。 新方法句柄的类型将与目标的类型相同,但在某些给定位置还包括占位符参数类型。
该 pos 参数的范围可能介于零和 N 之间,其中 N 是目标的 arity。 如果 pos 为零,占位符参数将位于目标的实际参数之前;如果 pos 为 N ,则它们将位于之后。
<b>示例:</b><blockquote>
{@code
import static java.lang.invoke.MethodHandles.*;
import static java.lang.invoke.MethodType.*;
...
MethodHandle cat = lookup().findVirtual(String.class,
"concat", methodType(String.class, String.class));
assertEquals("xy", (String) cat.invokeExact("x", "y"));
MethodType bigType = cat.type().insertParameterTypes(0, int.class, String.class);
MethodHandle d0 = dropArguments(cat, 0, bigType.parameterList().subList(0,2));
assertEquals(bigType, d0.type());
assertEquals("yz", (String) d0.invokeExact(123, "x", "y", "z"));
}
</blockquote>
此方法也等效于以下代码: <blockquote>
{@link #dropArguments(MethodHandle,int,Class...) dropArguments}{@code (target, pos, valueTypes.toArray(new Class[0]))}
</blockquote>
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。