MethodHandles.DropArguments 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | 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[]
要丟棄參數的型別
傳回
一個方法代柄,在呼叫原始方法代言柄前,先捨棄給定類型的參數
- 屬性
備註
本頁部分內容為基於 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
第一個要放棄的參數位置(最左邊為零)
傳回
一個方法代柄,在呼叫原始方法代言柄前,先捨棄給定類型的參數
- 屬性
備註
產生一個方法代言會捨棄部分佔位參數,然後再呼叫其他指定 目標 方法代碼。 新方法的 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]))}
</區塊引用>
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。