我想枚举颜色并使用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()。
另一种选择是使用常量列表,因为没有常量列表,因此类型安全性较低 enum:
static public class ColorList
{
static final Color WHITE = new Color(null, 255, 255, 255);
static final Color BLACK = new Color(null, 0, 0, 0);
}
(我发现的其他帖子似乎经常处理字符串转换。)
那么你有一个很好用的枚举推荐吗?
答案 0 :(得分:2)
你可以做的唯一可能更好的是使用静态导入。
import static mypackage.ColourList.*;
public static void main(String[] args) {
Color color = WHITE.getColor();
}
答案 1 :(得分:0)
使用枚举器定义要使用的常量。 您可以在不同的类文件中定义enumarator并直接调用常量而不是在类中定义它。