MethodHandle.AsFixedArity Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.