語言

MethodHandles.Invoker(MethodType) 方法

定義

產生一種特殊的 <em invoker 方法 handle</em>,可用於呼叫與該類型相容的任何方法代碼,就像 由 MethodHandle#invoke invoke>。

[Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? Invoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member Invoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

參數

type
MethodType

目標類型

傳回

一個適合調用任何可轉換為指定類型的方法代言人

屬性

備註

產生一種特殊的 <em invoker 方法 handle</em>,可用於呼叫與該類型相容的任何方法代碼,就像 由 MethodHandle#invoke invoke>。 所得的調用器會有一個恰好等於所需型別的型別,但會接受一個型別 MethodHandle為 的額外導引參數。

在呼叫目標前,若目標與預期類型不同,呼叫者會視需要套用參考鑄造,並對原始值進行框定、開箱或擴大,就像由 。MethodHandle#asType asType 同樣地,回報值也會視需要進行轉換。 若目標是 MethodHandle#asVarargsCollector 變數元率方法的 handle,則會進行所需的元數轉換,同樣由 進行 MethodHandle#asType asType。

此方法等同於以下程式碼(雖然可能更有效率): publicLookup().findVirtual(MethodHandle.class, "invoke", type)

<em>討論:</em> A MethodType#genericMethodType 一般方法類型是指只 Object 提及參數和回傳值的類型。 此類型態的調用器能夠呼叫與一般型別相同的任何方法代碼。

<em>(注意:調用者方法無法透過核心反射 API 提供。嘗試呼叫 java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke 在宣告的 invokeExact 或 invoke 方法上會產生一個 java.lang.UnsupportedOperationException UnsupportedOperationException.)</em>

此方法不會拋出反射性或安全例外。

Java 文件 java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType)。

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

適用於