Sprache

MethodHandle.AsFixedArity Methode

Definition

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.

Gilt für: