MethodHandle.AsFixedArity Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Macht einen <em>fixed arity</em> method handle, der andernfalls dem aktuellen Methodenhandle entspricht.
[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
Gibt zurück
ein neues Methodenhandle, das nur eine feste Anzahl von Argumenten akzeptiert
- Attribute
Hinweise
Macht einen <em>fixed arity</em> method handle, der andernfalls dem aktuellen Methodenhandle entspricht.
Wenn der aktuelle Methodenhandle nicht von #asVarargsCollector Variablenarität ist, wird der aktuelle Methodenhandle zurückgegeben. Dies gilt auch, wenn das aktuelle Methodenhandle keine gültige Eingabe sein asVarargsCollectorkonnte.
Andernfalls weist der resultierende Handle mit fester Arity-Methode den gleichen Typ und Verhalten des aktuellen Methodenhandle auf, mit der Ausnahme, dass #isVarargsCollector isVarargsCollector "false" lautet. Das Handle der Methode mit fester Genauigkeit kann (oder nicht) das vorherige Argument sein.asVarargsCollector
Nachfolgend sehen Sie ein Beispiel für ein Handle für eine Listenerstellungsvariablen-Methode: <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 Dokumentation für java.lang.invoke.MethodHandle.asFixedArity().
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.