補遺 (質問は既に回答されています。これはハウツーです): コンストラクターを列挙型に追加する場合は、コンストラクターへの引数を列挙型定数自体にアタッチする必要があります。
public enum MyEnum
{
VALUE1(1);
private final int value;
// Constructors of enums are private by default,
// no need to specify the access modifier
MyEnum(final int value)
{
this.value = value;
}
public int getValue()
{
return value;
}
}
メソッドを追加することもできることに注意してください。
public enum MyEnum
{
VALUE1
{
@Override
public int getValue()
{
return 0;
}
};
public abstract int getValue();
}
そして、両方を組み合わせることができます。この場合、次のように値が最初に記述され、次にメソッドの実装が記述されます。
VALUE("foo", 32)
{
@Override public int method1() { // whatever }
@Override public String method2() { // whatever }
};