語言

MethodHandles.DropArguments 方法

定義

多載

名稱 Description
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

參數被丟棄後,方法的 handle 要調用

pos
Int32

第一個要放棄的參數位置(最左邊為零)

valueTypes
Class[]

要丟棄參數的型別

傳回

一個方法代柄,在呼叫原始方法代言柄前,先捨棄給定類型的參數

屬性

備註

的 java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class)Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

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

參數被丟棄後,方法的 handle 要調用

pos
Int32

第一個要放棄的參數位置(最左邊為零)

valueTypes
IList<Class>

要丟棄參數的型別

傳回

一個方法代柄,在呼叫原始方法代言柄前,先捨棄給定類型的參數

屬性

備註

產生一個方法代言會捨棄部分佔位參數,然後再呼叫其他指定 目標 方法代碼。 新方法的 handle 型別與目標型別相同,但會在某個位置包含佔位參數型別。

pos參數範圍可能介於零與 N 之間,其中 N 為目標的元數。 若 pos 為零,佔位參數將置於目標的真實參數之前;若 pos 為 N ,則置於後面。

<b>範例:</b><引用>

{@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>

{@link #dropArguments(MethodHandle,int,Class...) dropArguments}{@code (target, pos, valueTypes.toArray(new Class[0]))}

</區塊引用>

的 java.lang.invoke.MethodHandles.dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>)Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於