MethodHandles.Lookup.Bind(Object, String, MethodType) メソッド

定義

非静的メソッドの事前バインドされたメソッド ハンドルを生成します。

[Android.Runtime.Register("bind", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle Bind (Java.Lang.Object receiver, string name, Java.Lang.Invoke.MethodType type);
[<Android.Runtime.Register("bind", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.Bind : Java.Lang.Object * string * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

パラメーター

receiver
Object

メソッドのアクセス元のオブジェクト

name
String

メソッドの名前

type
MethodType

受信側引数を省略したメソッドの型

戻り値

目的のメソッド ハンドル

属性

注釈

非静的メソッドの事前バインドされたメソッド ハンドルを生成します。 受信側には、指定された名前と型 defc のメソッドに参照クラスからアクセスできるスーパータイプが必要です。 メソッドとそのすべての引数型には、参照オブジェクトからアクセスできる必要があります。 メソッド ハンドルの型は、追加のレシーバー パラメーターを挿入せずに、 メソッドの型になります。 指定された受信側がメソッド ハンドルにバインドされるため、メソッド ハンドルを呼び出すたびに、指定された受信側で要求されたメソッドが呼び出されます。

メソッドの変数アリティ修飾子ビット (0x0080) が em>および</em> に設定<されている場合にのみ、返されるメソッド ハンドルには MethodHandle#asVarargsCollector 変数アリティが含まれます。これは、末尾の配列引数が唯一の引数ではない場合のみです。 (末尾の配列引数が唯一の引数の場合は、指定された受信側の値がそれにバインドされます)。

これは、次のコードと同じです: <blockquote>

{@code
            import static java.lang.invoke.MethodHandles.*;
            import static java.lang.invoke.MethodType.*;
            ...
            MethodHandle mh0 = lookup().findVirtual(defc, name, type);
            MethodHandle mh1 = mh0.bindTo(receiver);
            MethodType mt1 = mh1.type();
            if (mh0.isVarargsCollector())
              mh1 = mh1.asVarargsCollector(mt1.parameterType(mt1.parameterCount()-1));
            return mh1;
            }

</blockquote> where defc は、 またはそのクラスのスーパー型のいずれか receiver.getClass() であり、要求されたメソッドにルックアップ クラスからアクセスできます。 (変数のアリティは bindTo 保持されないことに注意してください)。)

の Java ドキュメント java.lang.invoke.MethodHandles.Lookup.bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType)

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

適用対象