次の方法で共有


MethodHandle.AsFixedArity メソッド

定義

現在のメソッド ハンドルと <同等の em>固定アリティ</em> メソッド ハンドルを作成します。

[Android.Runtime.Register("asFixedArity", "()Ljava/lang/invoke/MethodHandle;", "GetAsFixedArityHandler", ApiSince=26)]
public virtual Java.Lang.Invoke.MethodHandle? AsFixedArity ();
[<Android.Runtime.Register("asFixedArity", "()Ljava/lang/invoke/MethodHandle;", "GetAsFixedArityHandler", ApiSince=26)>]
abstract member AsFixedArity : unit -> Java.Lang.Invoke.MethodHandle
override this.AsFixedArity : unit -> Java.Lang.Invoke.MethodHandle

戻り値

固定数の引数のみを受け入れる新しいメソッド ハンドル

属性

注釈

現在のメソッド ハンドルと <同等の em>固定アリティ</em> メソッド ハンドルを作成します。

現在のメソッド ハンドルが変数のアリティでない場合 #asVarargsCollector、現在のメソッド ハンドルが返されます。 これは、現在のメソッド ハンドルが への asVarargsCollector有効な入力にできなかった場合でも当てはまります。

それ以外の場合、結果の固定アリティ メソッド ハンドルの型と動作は、現在のメソッド ハンドルと同じですが、 が false になる点が #isVarargsCollector isVarargsCollector 除きます。 固定アリティ メソッド ハンドルは、 の前の引数 asVarargsCollectorである場合とそうでない場合があります。

リスト作成変数アリティ メソッド ハンドルの例を次に示します。 <blockquote>

{@code
            MethodHandle asListVar = publicLookup()
              .findStatic(Arrays.class, "asList", methodType(List.class, Object[].class))
              .asVarargsCollector(Object[].class);
            MethodHandle asListFix = asListVar.asFixedArity();
            assertEquals("[1]", asListVar.invoke(1).toString());
            Exception caught = null;
            try { asListFix.invoke((Object)1); }
            catch (Exception ex) { caught = ex; }
            assert(caught instanceof ClassCastException);
            assertEquals("[two, too]", asListVar.invoke("two", "too").toString());
            try { asListFix.invoke("two", "too"); }
            catch (Exception ex) { caught = ex; }
            assert(caught instanceof WrongMethodTypeException);
            Object[] argv = { "three", "thee", "tee" };
            assertEquals("[three, thee, tee]", asListVar.invoke(argv).toString());
            assertEquals("[three, thee, tee]", asListFix.invoke(argv).toString());
            assertEquals(1, ((List) asListVar.invoke((Object)argv)).size());
            assertEquals("[three, thee, tee]", asListFix.invoke((Object)argv).toString());
            }

</blockquote>

の Java ドキュメント java.lang.invoke.MethodHandle.asFixedArity()

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

適用対象