MethodHandles.ExactInvoker(MethodType) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特殊な <em>invoker メソッド ハンドル</em> を生成します。このハンドルを使用すると、 MethodHandle#invokeExact invokeExactの場合と同様に、特定の型の任意のメソッド ハンドルを呼び出すことができます。
[Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExactInvoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExactInvoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
パラメーター
- type
- MethodType
目的のターゲットの種類
返品
指定された型の任意のメソッド ハンドルを呼び出すのに適したメソッド ハンドル
- 属性
注釈
特殊な <em>invoker メソッド ハンドル</em> を生成します。このハンドルを使用すると、 MethodHandle#invokeExact invokeExactの場合と同様に、特定の型の任意のメソッド ハンドルを呼び出すことができます。 結果の呼び出し元は、型の先頭に追加の引数を受け入れる点を除き、目的の型と正確に等しい型 MethodHandle。
このメソッドは、次のコードと同じです (ただし、より効率的な場合があります)。 publicLookup().findVirtual(MethodHandle.class, "invokeExact", type)
<em>Discussion:</em> Invoker メソッド ハンドルは、不明な型の変数メソッド ハンドルを操作する場合に便利です。 たとえば、変数メソッド ハンドル Mに対するinvokeExact呼び出しをエミュレートするには、その型Tを抽出し、TX呼び出し側メソッドを検索し、X.invoke(T, A...)として呼び出し側メソッドを呼び出します。 (型Tは不明であるため、X.invokeExactを呼び出すには機能しません)。拡散、収集、またはその他の引数変換が必要な場合は、呼び出し側のXに 1 回適用し、Xの型と互換性がある限り、多くのMメソッド ハンドル値で再利用できます。
<em>(注: 呼び出し側メソッドは、Core Reflection API を介して使用できません。宣言された invokeExact または invoke メソッドで java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke を呼び出そうとすると、 java.lang.UnsupportedOperationException UnsupportedOperationException.)</em>
このメソッドは、反射例外またはセキュリティ例外をスローしません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。