Langage

MethodHandle.AsFixedArity Méthode

Définition

Rend un <handle de méthode arity></em fixe em> qui est sinon équivalent au handle de méthode actuel.

[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

Retours

un nouveau handle de méthode qui accepte uniquement un nombre fixe d’arguments

Attributs

Remarques

Rend un <handle de méthode arity></em fixe em> qui est sinon équivalent au handle de méthode actuel.

Si le handle de méthode actuel n’est pas de #asVarargsCollector arité variable, le handle de méthode actuel est retourné. Cela est vrai même si le handle de méthode actuel n’a pas pu être une entrée valide sur asVarargsCollector.

Dans le cas contraire, le handle de méthode fixe résultant a le même type et le même comportement que le handle de méthode actuel, sauf que ce #isVarargsCollector isVarargsCollector sera faux. Le handle de méthode fixe peut (ou non) être l’argument précédent à asVarargsCollector.

Voici un exemple de handle de méthode arity variable à création de liste : <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>

Documentation Java pour java.lang.invoke.MethodHandle.asFixedArity().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à