MethodHandles.ExactInvoker(MethodType) 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.
Produit un handle</em> special <em>invoker, qui peut être utilisé pour appeler n’importe quel handle de méthode du type donné, comme si par MethodHandle#invokeExact invokeExact.
[Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExactInvoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("exactInvoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExactInvoker : 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 du type donné
- Attributs
Remarques
Produit un handle</em> special <em>invoker, qui peut être utilisé pour appeler n’importe quel handle de méthode du type donné, comme si par MethodHandle#invokeExact invokeExact. 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.
Cette méthode équivaut au code suivant (bien qu’elle soit plus efficace) : publicLookup().findVirtual(MethodHandle.class, "invokeExact", type)
<Em>Discussion :/em> Invoker,< les handles de méthode peuvent être utiles lors de l’utilisation de handles de méthodes variables de types inconnus. Par exemple, pour émuler un invokeExact appel à un handle Mde méthode variable, extraire son type T, rechercher la méthode XTde l’appelant et appeler la méthode d’appelant, en tant que X.invoke(T, A...). (Il ne fonctionne pas pour appeler X.invokeExact, car le type T est inconnu.) Si la propagation, la collecte ou d’autres transformations d’arguments sont requises, elles peuvent être appliquées une fois à l’appelant X et réutilisées sur de nombreuses M valeurs de handle de méthode, tant qu’elles sont compatibles avec le type de X.
<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.exactInvoker(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.