SwitchBootstraps.EnumSwitch Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Metodo Bootstrap per il collegamento di un sito di chiamata invokedynamic che implementa un interruttore su una destinazione di un tipo enumerazione.
[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
Parametri
- lookup
- MethodHandles.Lookup
Rappresenta un contesto di ricerca con i privilegi di accessibilità del chiamante. Se usato con invokedynamic, questo viene in pila automaticamente dalla macchina virtuale.
- invocationName
- String
unused
- invocationType
- MethodType
Tipo di chiamata di CallSite con due parametri, un tipo enum, un valore int e int come tipo restituito.
- labels
- Object[]
etichette case : costanti stringa e istanze di classe, in qualsiasi combinazione
Valori restituiti
CallSite che restituisce il primo elemento corrispondente come descritto in precedenza
- Attributi
Eccezioni
Un elemento di labels è null; invocationType non accetta un'enumerazione e un int oggetto e restituisce un intoggetto oppure un'etichetta non è né un StringClass oggetto per il tipo di enumerazione di destinazione.
Un argomento è null.
Commenti
Metodo Bootstrap per il collegamento di un sito di chiamata invokedynamic che implementa un interruttore su una destinazione di un tipo enumerazione. Gli argomenti statici vengono usati per codificare le etichette case associate al costrutto switch, in cui ogni etichetta può essere codificata in due modi: come valore String, che rappresenta il nome della costante enumerazione associata all'etichetta come valore class, che rappresenta il tipo di enumerazione associato a un modello di test di tipo L'handle del metodo callSite restituito avrà un tipo restituito di int e accetta due parametri: il primo argomento sarà un'istanza Enum ( destinazione ) e la seconda sarà int ( riavviare ). Se la destinazione è Null, il metodo del sito di chiamata restituisce -1. Se la destinazione non è Null, il metodo del sito di chiamata restituisce l'indice del primo elemento nella matrice di etichette a partire dall'indice di riavvio corrispondente a una delle condizioni seguenti: l'elemento è di tipo Class che è assegnabile dalla classe di destinazione; o l'elemento è di tipo String ed è uguale al Enum.name() della costante di enumerazione di destinazione. Se nessun elemento nella matrice di etichette corrisponde alla destinazione, il metodo del sito di chiamata restituisce la lunghezza della matrice di etichette. Il valore dell'indice di riavvio deve essere compreso tra 0 (inclusi) e la lunghezza della matrice di etichette (inclusi) oppure viene generata un'eccezione IndexOutOfBoundsException.
per java.lang.runtime.SwitchBootstraps.enumSwitch.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.