Language

SwitchBootstraps.EnumSwitch メソッド

定義

列挙型のターゲットにスイッチを実装する 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

属性

例外

labelsの要素はnullです。invocationTypeは列挙型とintを受け入れてintを返しません。または、ラベルがターゲット列挙型のStringでもClassでもありません。

引数が null。

注釈

列挙型のターゲットにスイッチを実装する invokedynamic 呼び出しサイトをリンクするためのブートストラップ メソッド。 静的引数は、switch コンストラクトに関連付けられているケース ラベルをエンコードするために使用されます。各ラベルは、2 つの方法でエンコードできます。文字列値は、クラス値としてラベルに関連付けられている列挙型定数の名前を表します。これは、型テスト パターンに関連付けられた列挙型を表します。返される CallSite のメソッド ハンドルには、戻り値の型 int があり、2 つのパラメーターを受け入れます。 最初の引数は Enum インスタンス (ターゲット) になり、2 番目の引数は int (再起動) になります。 ターゲットが null の場合、呼び出しサイトのメソッドは -1 を返します。 ターゲットが null でない場合、呼び出しサイトのメソッドは、次のいずれかの条件に一致する再起動インデックスから始まるラベル配列内の最初の要素のインデックスを返します。要素は、ターゲットのクラスから割り当て可能な Class 型です。または、要素が String 型で、ターゲット列挙型定数の Enum.name() と等しい。 ラベル配列内の要素がターゲットと一致しない場合、呼び出しサイトのメソッドはラベル配列の長さを返します。 再開インデックスの値は、0 (両端を含む) からラベル配列の長さ (両端を含む) の間である必要があります。両方または IndexOutOfBoundsException がスローされます。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象