言語

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

Javaドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

適用対象