言語

MethodHandles.Invoker(MethodType) メソッド

定義

特殊な <em>invoker メソッド ハンドル</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 メソッド ハンドル</em> を生成します。このハンドルを使用すると、 MethodHandle#invoke invokeの場合と同様に、指定された型と互換性のあるメソッド ハンドルを呼び出すことができます。 結果の呼び出し元は、型の先頭に追加の引数を受け入れる点を除き、目的の型と正確に等しい型 MethodHandle

ターゲットを呼び出す前に、ターゲットが予想される型と異なる場合、呼び出し元は必要に応じて参照キャストを適用し、プリミティブ値をボックス化、ボックス化解除、または拡大します MethodHandle#asType asType。 同様に、戻り値は必要に応じて変換されます。 ターゲットが MethodHandle#asVarargsCollector 変数アリティ メソッド ハンドルの場合、必要なアリティ変換が、 MethodHandle#asType asTypeされたかのように再度行われます。

このメソッドは、次のコードと同じです (ただし、より効率的な場合があります)。 publicLookup().findVirtual(MethodHandle.class, "invoke", type)

<em>Discussion:</em> MethodType#genericMethodType の一般的なメソッド型は、引数と戻り値のみを Object します。 このような型の呼び出し元は、汎用型と同じアリティの任意のメソッド ハンドルを呼び出すことができます。

<em>(注: 呼び出し側メソッドは、Core Reflection API を介して使用できません。宣言された invokeExact または invoke メソッドで java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke を呼び出そうとすると、 java.lang.UnsupportedOperationException UnsupportedOperationException.)</em>

このメソッドは、反射例外またはセキュリティ例外をスローしません。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象