Linguaggio

SwitchBootstraps.EnumSwitch Metodo

Definizione

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.

Si applica a