我希望我的枚举的字段常量返回Color color;
color = ExtendedColor.RED;
color = ExtendedColor.FOO;
color = ExtendedColor.BAZ;
类的实例而不是某些常量值,这在Java中是否可行?我想避免通过访问器方法检索它们。例如,这是我希望能够使用我的枚举的方式:
import java.awt.*;
/**
* Static utility enum for providing a much greater variety of Colors to choose from, some of which are not
* included as constants in the Color class
*/
public enum ExtendedColor {
RED(Color.RED),
ORANGE(Color.ORANGE),
YELLOW(Color.YELLOW),
FOO(10, 20, 30),
BAR(90, 90, 90),
BAZ(30, 30, 30);
private Color color;
private ExtendedColor(Color color) {
this.color = color;
}
private ExtendedColor(int r, int g, int b) {
this.color = new Color(r, g, b);
}
}
docker-machine
答案 0 :(得分:2)
您可以创建一个包含公共静态字段的类,并直接访问字段ExtendedColor.COLOR1
。
import java.awt.*;
public class ExtendedColor {
public static final Color COLOR1 = ...;
public static final Color COLOR2 = ...;
...
}
答案 1 :(得分:2)
第一个答案给出了一种方法。另一种方法是在colorValue
枚举中定义ExtendedColor
方法,该方法返回实际的颜色。
public enum ExtendedColor {
...
public Color colorValue() {
return color;
}
}
然后你会有
Color color;
color = ExtendedColor.RED.colorValue();
color = ExtendedColor.FOO.colorValue();
color = ExtendedColor.BAZ.colorValue();