Huzzah!Java枚舉靜態最終實例變量
此代碼工作了一段時間,然後我決定添加一個默認顏色,並停止工作。我收到以下錯誤:
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決定拋出一個錯誤。 有什麼想法?
是否有任何理由有'defaultColor'字段?無論如何,你的代碼其餘部分是不是應該查看'Status.color'? –