Langage

MethodHandles.Invoker(MethodType) Méthode

Définition

Produit un handle</em de méthode d’appel em>> spécial <qui peut être utilisé pour appeler n’importe quel handle de méthode compatible avec le type donné, comme si par MethodHandle#invoke invoke.

[Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? Invoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member Invoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

Paramètres

type
MethodType

type cible souhaité

Retours

un handle de méthode adapté à l’appel d’un handle de méthode convertible en type donné

Attributs

Remarques

Produit un handle</em de méthode d’appel em>> spécial <qui peut être utilisé pour appeler n’importe quel handle de méthode compatible avec le type donné, comme si par MethodHandle#invoke invoke. L’appelant résultant aura un type qui est exactement égal au type souhaité, sauf qu’il acceptera un argument de début supplémentaire de type MethodHandle.

Avant d’appeler sa cible, si la cible diffère du type attendu, l’appelant applique des casts de référence selon les besoins et la zone, unbox ou les valeurs primitives larges, comme si c’était le MethodHandle#asType asTypecas. De même, la valeur de retour est convertie si nécessaire. Si la cible est un handle de méthode arity de variable MethodHandle#asVarargsCollector, la conversion d’arité requise est effectuée, à nouveau comme si .MethodHandle#asType asType

Cette méthode équivaut au code suivant (bien qu’elle soit plus efficace) : publicLookup().findVirtual(MethodHandle.class, "invoke", type)

<em>Discussion :</em> A MethodType#genericMethodType type de méthode générale est un qui mentionne uniquement Object les arguments et les valeurs de retour. Un appelant pour un tel type est capable d’appeler n’importe quel handle de méthode de la même arité que le type général.

<em>(Remarque : La méthode de l’appelant n’est pas disponible via l’API Core Reflection. Une tentative d’appel de java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke sur la méthode déclarée invokeExactinvoke déclenche un java.lang.UnsupportedOperationException UnsupportedOperationException.)</em>

Cette méthode ne lève aucune exception de réflexion ou de sécurité.

Java documentation pour java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType).

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

S’applique à