Статические переменные конечного экземпляра Java Enum

Ура!

Этот код работал какое-то время, потом я решил добавить цвет по умолчанию, и он перестал работать. Я получаю следующую ошибку:

1 error found:
File: Status.java  [line: 20]
Error: Status.java:20: illegal reference to static field from initializer

Со следующим кодом во время компиляции.

import java.awt.Color;

enum Status
{
  OFF ("Off"),
  TRAINING ("Training", new Color(255, 191, 128)),
  BEGINNER ("Beginner", new Color(128, 255, 138)),
  INTERMEDIATE ("Intermediate", new Color(128, 212, 255)),
  ADVANCED ("Advanced", new Color(255, 128, 128));

  public final String name;
  public final Color color;

  public static final Color defaultColor = Color.WHITE;

  Status(String name)
  {
    this(name, defaultColor);
  }
  Status(String name, Color color)
  {
    this.name = name;
    this.color = color;
  }
}

Это должно работать, насколько я могу судить, но по какой-то причине Java решила выдать ошибку. Есть мысли?

15
задан skeggse 22 June 2011 в 05:22
поделиться