SwitchBootstraps.EnumSwitch Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bootstrap-Methode zum Verknüpfen einer aufrufdynamischen Aufrufwebsite, die einen Switch auf einem Ziel eines Enumerationstyps implementiert.
[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
Parameter
- lookup
- MethodHandles.Lookup
Stellt einen Nachschlagekontext mit den Barrierefreiheitsberechtigungen des Aufrufers dar. Bei Verwendung mit invokedynamic wird dies automatisch von der VM gestapelt.
- invocationName
- String
unused
- invocationType
- MethodType
Der Aufruftyp der CallSite mit zwei Parametern, einem Enumerationstyp, einem Int und int als Rückgabetyp.
- labels
- Object[]
Groß-/Kleinschreibungsbezeichnungen – Zeichenfolgenkonstanten und Klasseninstanzen in beliebiger Kombination
Gibt zurück
eine CallSite, die das erste übereinstimmende Element zurückgibt, wie oben beschrieben
- Attribute
Ausnahmen
Ein Element von labels ist null; invocationType akzeptiert keine Enumeration und eine und gibt ein intint; oder eine Bezeichnung ist weder ein noch ein StringClass für den Zielenumstyp.
Ein Argument ist null.
Hinweise
Bootstrap-Methode zum Verknüpfen einer aufrufdynamischen Aufrufwebsite, die einen Switch auf einem Ziel eines Enumerationstyps implementiert. Die statischen Argumente werden verwendet, um die Fallbeschriftungen zu codieren, die dem Switch-Konstrukt zugeordnet sind, wobei jede Bezeichnung auf zwei Arten codiert werden kann: als Zeichenfolgenwert, der den Namen der Enumerationskonstante darstellt, die der Bezeichnung als Klassenwert zugeordnet ist, der den Enumerationstyp darstellt, der einem Typtestmuster zugeordnet ist. Der zurückgegebene Methodenhandle von CallSite hat einen Rückgabetyp von int und akzeptiert zwei Parameter: Das erste Argument ist eine Enumerationsinstanz ( Ziel ) und die zweite wird int ( neustart ). Wenn das Ziel null ist, gibt die Methode der Aufrufwebsite -1 zurück. Wenn das Ziel nicht NULL ist, gibt die Methode der Aufrufwebsite den Index des ersten Elements im Bezeichnungsarray ab dem Neustartindex zurück, der einer der folgenden Bedingungen entspricht: das Element ist vom Typ "Class", der von der Klasse des Ziels zugewiesen werden kann; oder das Element ist vom Typ String und entspricht der Enum.name() der Zielenumskonstante. Wenn kein Element im Beschriftungsarray mit dem Ziel übereinstimmt, gibt die Methode der Aufrufwebsite die Länge des Beschriftungsarrays zurück. Der Wert des Neustartindex muss zwischen 0 (einschließlich) und der Länge des Bezeichnungsarrays (einschließlich) liegen, oder es wird eine IndexOutOfBoundsException ausgelöst.
Java Dokumentation für java.lang.runtime.SwitchBootstraps.enumSwitch.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.