SwitchBootstraps.EnumSwitch メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
列挙型のターゲットにスイッチを実装する invokedynamic 呼び出しサイトをリンクするためのブートストラップ メソッド。
[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
パラメーター
- lookup
- MethodHandles.Lookup
呼び出し元のアクセシビリティ特権を持つ参照コンテキストを表します。 invokedynamic と共に使用すると、これは VM によって自動的にスタックされます。
- invocationName
- String
unused
- invocationType
- MethodType
戻り値の型として列挙型、int、および int の 2 つのパラメーターを持つ CallSite の呼び出し型。
- labels
- Object[]
case ラベル - 文字列定数とクラス インスタンス (任意の組み合わせ)
返品
前述のように最初に一致する要素を返す CallSite
- 属性
例外
引数が null。
注釈
列挙型のターゲットにスイッチを実装する invokedynamic 呼び出しサイトをリンクするためのブートストラップ メソッド。 静的引数は、switch コンストラクトに関連付けられているケース ラベルをエンコードするために使用されます。各ラベルは、2 つの方法でエンコードできます。文字列値は、クラス値としてラベルに関連付けられている列挙型定数の名前を表します。これは、型テスト パターンに関連付けられた列挙型を表します。返される CallSite のメソッド ハンドルには、戻り値の型 int があり、2 つのパラメーターを受け入れます。 最初の引数は Enum インスタンス (ターゲット) になり、2 番目の引数は int (再起動) になります。 ターゲットが null の場合、呼び出しサイトのメソッドは -1 を返します。 ターゲットが null でない場合、呼び出しサイトのメソッドは、次のいずれかの条件に一致する再起動インデックスから始まるラベル配列内の最初の要素のインデックスを返します。要素は、ターゲットのクラスから割り当て可能な Class 型です。または、要素が String 型で、ターゲット列挙型定数の Enum.name() と等しい。 ラベル配列内の要素がターゲットと一致しない場合、呼び出しサイトのメソッドはラベル配列の長さを返します。 再開インデックスの値は、0 (両端を含む) からラベル配列の長さ (両端を含む) の間である必要があります。両方または IndexOutOfBoundsException がスローされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。