MethodHandles.GuardWithTest(MethodHandle, MethodHandle, MethodHandle) 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 qui adapte un handle de méthode cible, en le mettant en garde avec un test, un handle de méthode booléen.
[Android.Runtime.Register("guardWithTest", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? GuardWithTest(Java.Lang.Invoke.MethodHandle? test, Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodHandle? fallback);
[<Android.Runtime.Register("guardWithTest", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member GuardWithTest : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodHandle -> Java.Lang.Invoke.MethodHandle
Paramètres
- test
- MethodHandle
handle de méthode utilisé pour le test, doit retourner booléen
- target
- MethodHandle
handle de méthode à appeler si le test réussit
- fallback
- MethodHandle
handle de méthode à appeler en cas d’échec du test
Retours
handle de méthode qui incorpore la logique if/then/else spécifiée
- Attributs
Remarques
Rend un handle de méthode qui adapte un handle de méthode cible, en le mettant en garde avec un test, un handle de méthode booléen. Si le garde échoue, une poignée de secours est appelée à la place. Les trois handles de méthode doivent avoir les mêmes types d’arguments et de retour correspondants, sauf que le type de retour du test doit être booléen et que le test est autorisé à avoir moins d’arguments que les deux autres handles de méthode.
Voici un pseudocode pour l’adaptateur résultant : <blockquote>
{@code
boolean test(A...);
T target(A...,B...);
T fallback(A...,B...);
T adapter(A... a,B... b) {
if (test(a...))
return target(a..., b...);
else
return fallback(a..., b...);
}
}
</blockquote> Notez que les arguments de test (a... dans le pseudocode) ne peuvent pas être modifiés par l’exécution du test, et sont donc passés inchangés de l’appelant à la cible ou à la secours selon les besoins.
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.