如果有这个枚举类型代码并得到此编译错误。
我知道Color.RED
是一个int,但我不确定为什么会收到错误?
enum Direction {
NORTH(Color.RED), WEST(Color.BLUE), EAST(Color.BLACK), SOUTH(
Color.GREEN);
Direction(Color c) {
color = c;
}
private Color color;
public static Direction fromName(String name) {
for (Direction d : Direction.values()) {
if (d.name().equalsIgnoreCase(name)) {
return d;
}
}
return NORTH;
}
public Color getColor() {
return color;
} }
感谢您的帮助。
答案 0 :(得分:3)
public enum Direction {
NORTH(Color.RED), WEST(Color.BLUE), EAST(Color.BLACK), SOUTH(
Color.GREEN);
Direction(int c) {
color = c;
}
private int color;
public int get() {
return color;
}
}
并以int格式获取颜色:
Direction.SOUTH.get();
将返回颜色“Green”的int值
答案 1 :(得分:2)
在构造函数中,您声明参数必须是类Color
的实例。例如,Color.RED
返回一个整数。
所以你要么
Color.RED
Color
等
醇>
OR
int
。