Android - 无法应用编译错误变量

时间:2014-12-04 21:38:00

标签: java android enums

如果有这个枚举类型代码并得到此编译错误。

enter image description here

我知道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;

} }

感谢您的帮助。

2 个答案:

答案 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返回一个整数。

所以你要么

  1. 必须使用Color.RED
  2. 的对象替换Color

    OR

    1. 更改您的枚举以存储int