我想枚举颜色并使用 Color 实例。因此,我创建了一个带有私有字段和 get 函数的枚举,但由于需要调用getColor()
.
有没有更好的方法直接使用枚举常量而不调用getColor()
?
public class ColorListTest {
public enum ColorList
{
WHITE(new Color(255, 255, 255)),
BLACK(new Color(255, 255, 255)),
;
private Color color;
private ColorList(Color color) { this.color = color; }
public Color getColor() { return color; }
}
public static void main(String[] args)
{
Color color = ColorList.WHITE.getColor();
// I'd rather have something similar to:
// Color color = WHITE;
// Color color = ColorList.WHITE;
}
}
Using enums as key for map问题的答案 建议使用地图,这也需要调用 get()。
另一种选择是使用常量列表,因为不再有枚举,所以类型安全性较低:
static public class ColorList
{
static final Color WHITE = new Color(null, 255, 255, 255);
static final Color BLACK = new Color(null, 0, 0, 0);
}
(我发现的其他帖子似乎处理了很多字符串转换。)
那么你对一个很好用的枚举有什么建议吗?