次の方法で共有


MethodHandles.Lookup.FindConstructor(Class, MethodType) メソッド

定義

指定した型のコンストラクターを使用して、オブジェクトを作成して初期化するメソッド ハンドルを生成します。

[Android.Runtime.Register("findConstructor", "(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle FindConstructor (Java.Lang.Class refc, Java.Lang.Invoke.MethodType type);
[<Android.Runtime.Register("findConstructor", "(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.FindConstructor : Java.Lang.Class * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

パラメーター

refc
Class

メソッドにアクセスするクラスまたはインターフェイス

type
MethodType

メソッドの型(受信側引数を省略)、void 戻り値の型

戻り値

目的のメソッド ハンドル

属性

注釈

指定した型のコンストラクターを使用して、オブジェクトを作成して初期化するメソッド ハンドルを生成します。 メソッド ハンドルのパラメーター型はコンストラクターの型になりますが、戻り値の型はコンストラクターのクラスへの参照になります。 コンストラクターとそのすべての引数型は、参照オブジェクトからアクセスできる必要があります。

要求された型には戻り値の void型が必要です。 (これは、JVM のコンストラクター型記述子の処理と一致します)。

コンストラクターの変数アリティ修飾子ビット (0x0080) が設定されている場合にのみ、返されるメソッド ハンドルには MethodHandle#asVarargsCollector 変数アリティがあります。

返されたメソッド ハンドルが呼び出されると、コンストラクターのクラスがまだ初期化されていない場合は初期化されます。

<b>例:</b><ブロッククォート>

{@code
            import static java.lang.invoke.MethodHandles.*;
            import static java.lang.invoke.MethodType.*;
            ...
            MethodHandle MH_newArrayList = publicLookup().findConstructor(
              ArrayList.class, methodType(void.class, Collection.class));
            Collection orig = Arrays.asList("x", "y");
            Collection copy = (ArrayList) MH_newArrayList.invokeExact(orig);
            assert(orig != copy);
            assertEquals(orig, copy);
            // a variable-arity constructor:
            MethodHandle MH_newProcessBuilder = publicLookup().findConstructor(
              ProcessBuilder.class, methodType(void.class, String[].class));
            ProcessBuilder pb = (ProcessBuilder)
              MH_newProcessBuilder.invoke("x", "y", "z");
            assertEquals("[x, y, z]", pb.command().toString());
            }

</blockquote>

の Java ドキュメントjava.lang.invoke.MethodHandles.Lookup.findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象