switch
はい、 Java のステートメントで列挙型を使用できるはずです。
public enum SomeEnum { FOO, BAR, BAZ };
// in a class...
private void something(SomeEnum s) {
switch (s) {
case FOO:
// do something
break;
case BAR:
// do something else
break;
}
}
int 値がこれにどのように結びついているかはわかりませんが、通常の Java クラスのように列挙型にフィールド/メソッドを設定でき、これらを使用して他の POJO と同様に int (または他の型) 値を保持できます。
以下は、enum クラスのコンストラクターを宣言する例です。これにより、enum の各インスタンスが構築されるときに内部変数の値を渡すことができます。何が起こっているかを理解するのを助けるために: まず、列挙型で項目を宣言します - 各宣言はコンストラクターを呼び出すので、ここでインスタンス変数を渡すことができます。次に、通常の Java クラスと同様に、enum クラスのコードが続きます。
public enum AnotherEnum {
ONE(1, "un"), TWO(2, "deux"), THREE(3, "trois"), FIFTY_SEVEN(57, "cinquante-sept");
private final int someInt;
private final String french;
private AnotherEnum(int i, String s) {
this.someInt = i;
this.french = s;
}
public int getSomeInt() {
return this.someInt;
}
public String getFrench() {
return this.french;
}
}
たとえば、System.out.println(AnotherEnum.TWO.getSomeInt())
を印刷2
し、System.out.println(AnotherEnum.FIFTY_SEVEN.getFrench())
を印刷しますcinquante-sept
。