列挙型 (enumeration type)

宣言

enum MyEnum1 {
    a, b, C, D, // OK
}

enum MyEnum2 {
    1,2,3, // ERROR : Syntax error on tokens, delete these tokens
}

メンバ

enumの宣言もクラスと同様に、メンバを持つことができます。

enum MyEnum {
    A, B;
    static int C() { return 1; }
    static void D(int x) { System.out.print(x); }
}
System.out.println(MyEnum.C()); // 1
MyEnum.D(123);                  // 123

定数 (constants)

enum MyEnum {
    A, B;                        // enum定数
    static final double C = 1.0; // 通常の定数
}

この定数を出力すると、

System.out.print(MyEnum.A); // A
System.out.print(MyEnum.B); // B
System.out.print(MyEnum.C); // 1.0

となります。

通常の定数は列挙型のメンバであるため、宣言の前にはセミコロンが必要です。

enum MyEnum1 {
    ; // OK
    static final double C = 1.0;
}

enum MyEnum2 {
    // ERROR : Syntax error on token "{", ; expected after this token
    static final double C = 1.0;
}

修飾子

 

java.lang.Enum<E>

enum型は、暗黙的にjava.lang.Enum<E>を継承しています。

Javaのドキュメントから検索