SwitchBootstraps.EnumSwitch 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.
Méthode bootstrap pour lier un site d’appel invokedynamic qui implémente un commutateur sur une cible d’un type d’énumération.
[Android.Runtime.Register("enumSwitch", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;", "", ApiSince=36)]
public static Java.Lang.Invoke.CallSite? EnumSwitch(Java.Lang.Invoke.MethodHandles.Lookup? lookup, string? invocationName, Java.Lang.Invoke.MethodType? invocationType, params Java.Lang.Object[]? labels);
[<Android.Runtime.Register("enumSwitch", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;", "", ApiSince=36)>]
static member EnumSwitch : Java.Lang.Invoke.MethodHandles.Lookup * string * Java.Lang.Invoke.MethodType * Java.Lang.Object[] -> Java.Lang.Invoke.CallSite
Paramètres
- lookup
- MethodHandles.Lookup
Représente un contexte de recherche avec les privilèges d’accessibilité de l’appelant. Lorsqu’elle est utilisée avec invokedynamic, elle est empilée automatiquement par la machine virtuelle.
- invocationName
- String
unused
- invocationType
- MethodType
Type d’appel du CallSite avec deux paramètres, un type d’énumération, un int et int comme type de retour.
- labels
- Object[]
étiquettes de cas - Constantes de chaîne et instances de classe, dans n’importe quelle combinaison
Retours
Un CallSite retournant le premier élément correspondant, comme décrit ci-dessus
- Attributs
Exceptions
Un élément d’is labelsnull; invocationType n’accepte pas d’énumération et un int et retourne un int; ou une étiquette n’est ni un String ni un Class pour le type d’énumération cible.
Un argument est null.
Remarques
Méthode bootstrap pour lier un site d’appel invokedynamic qui implémente un commutateur sur une cible d’un type d’énumération. Les arguments statiques sont utilisés pour encoder les étiquettes de cas associées à la construction de commutateur, où chaque étiquette peut être encodée de deux manières : en tant que valeur de chaîne, qui représente le nom de la constante d’énumération associée à l’étiquette en tant que valeur de classe, qui représente le type d’énumération associé à un modèle de test de type, le handle de méthode CallSite retourné aura un type de retour d’int et accepte deux paramètres : le premier argument sera une instance Enum (cible) et le second sera int (redémarrage). Si la cible est null, la méthode du site d’appel retourne -1. Si la cible n’est pas null, la méthode du site d’appel retourne l’index du premier élément du tableau d’étiquettes à partir de l’index de redémarrage correspondant à l’une des conditions suivantes : l’élément est de type Classe qui est assignable à partir de la classe de la cible ; ou l’élément est de type String et est égal à la constante d’énumération cible Enum.name(). Si aucun élément du tableau d’étiquettes ne correspond à la cible, la méthode du site d’appel retourne la longueur du tableau d’étiquettes. La valeur de l’index de redémarrage doit être comprise entre 0 (inclus) et la longueur du tableau d’étiquettes (inclusive), à la fois ou une exception IndexOutOfBoundsException est levée.
Java documentation pour java.lang.runtime.SwitchBootstraps.enumSwitch.
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.