Linguaggio

MethodHandle.AsFixedArity Metodo

Definizione

Crea un <handle di metodo em>fixed arity</em> che in caso contrario equivale all'handle del metodo corrente.

[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

Valori restituiti

un nuovo handle di metodo che accetta solo un numero fisso di argomenti

Attributi

Commenti

Crea un <handle di metodo em>fixed arity</em> che in caso contrario equivale all'handle del metodo corrente.

Se l'handle del metodo corrente non è di #asVarargsCollector variabile, viene restituito l'handle del metodo corrente. Questo vale anche se l'handle del metodo corrente non può essere un input valido per asVarargsCollector.

In caso contrario, l'handle del metodo fixed-arity risultante ha lo stesso tipo e lo stesso comportamento dell'handle del metodo corrente, ad eccezione del fatto che #isVarargsCollector isVarargsCollector sarà false. L'handle del metodo fixed-arity può (o meno) essere l'argomento precedente di asVarargsCollector.

Di seguito è riportato un esempio di handle di metodo di arity variabile che crea un elenco: <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>

per java.lang.invoke.MethodHandle.asFixedArity().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a