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
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; }
enum型は、暗黙的にjava.lang.Enum<E>を継承しています。