MethodHandles.ExplicitCastArguments(MethodHandle, 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 de méthode qui adapte le type du handle de méthode donné à un nouveau type par argument pair et conversion de type de retour.
[Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExplicitCastArguments(Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodType? newType);
[<Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExplicitCastArguments : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Paramètres
- target
- MethodHandle
handle de méthode à appeler une fois les arguments retapés
- newType
- MethodType
type attendu du nouveau handle de méthode
Retours
un handle de méthode qui délègue à la cible après avoir effectué les conversions d’arguments nécessaires et organise les conversions de valeur de retour nécessaires
- Attributs
Remarques
Produit un handle de méthode qui adapte le type du handle de méthode donné à un nouveau type par argument pair et conversion de type de retour. Le type d’origine et le nouveau type doivent avoir le même nombre d’arguments. Le handle de méthode résultant est garanti pour signaler un type qui est égal au nouveau type souhaité.
Si le type d’origine et le nouveau type sont égaux, retourne la cible.
Les mêmes conversions sont autorisées pour MethodHandle#asType MethodHandle.asType, et certaines conversions supplémentaires sont également appliquées si ces conversions échouent. Les types <em>T0</em>, <em>T1</em>, l’une des conversions suivantes est appliquée si possible, avant ou au lieu de conversions effectuées par asType: <ul<>li>Em>< T0</em> et <em>T1</em> sont des références, et <em>T1</em> est un type d’interface, puis la valeur de type <em>T0</em> est passée en tant qu’em <>T1</em> sans cast. (Ce traitement des interfaces suit l’utilisation du vérificateur bytecode.) <li>Si <em>T0</em> est booléen et <em>T1</em> est une autre primitive, la valeur booléenne est convertie en valeur d’octet, 1 pour true, 0 pour false. (Ce traitement suit l’utilisation du vérificateur bytecode.) <li>Si <em>T1</>em est booléen et <em>T0</em> est une autre primitive, <em>T0</em> est converti en octet via Java conversion de cast (JLS 5.5), et le bit d’ordre faible du résultat est testé, comme si par (x & 1) != 0.
<li>If <em>T0</em> et <em>T1</em> sont des primitives autres que booléennes, alors une conversion de cast Java (JLS 5.5) est appliquée. (Plus précisément, <em T0</em> se convertit en <em>T1</em> en élargissant et/ou en rétrécissant.) <>li>If <em>T0</em> est une référence et <em>T1</em> a primitive, une conversion d’unboxing sera appliquée au moment de l’exécution, éventuellement suivie d’une conversion de cast Java (JLS 5.5) sur la valeur primitive, éventuellement suivie d’une conversion d’octet en octet en booléen en testant le bit de faible ordre.
<li>If <em>T0</em> est une référence et <em>T1</em> une primitive, et si la référence est null au moment de l’exécution, une valeur zéro est introduite.
</ul>
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.