MethodHandles.Lookup.Bind(Object, String, MethodType) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非静的メソッドの事前バインドされたメソッド ハンドルを生成します。
[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
保持されないことに注意してください)。)
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。