MethodHandle.AsFixedArity Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.