枚举期限问题

时间:2011-03-07 22:55:32

标签: java enums

所以,如果我们有一个类似的枚举:

  public enum light { red, yellow, green }

持续时间是多少?是不是光是某种颜色的时候?

喜欢

int duration = ligt.red = 1

或类似的东西?

2 个答案:

答案 0 :(得分:3)

声明你的枚举:

public enum Light { 
    RED(1), 
    YELLOW(2), 
    GREEN(3);

    private final int duration;

    Light(int duration) {
        this.duration = duration;
    } 

    public int getDuration() {
        return this.duration;
    }
}

然后你可以像这样使用它:

public class Test {
    public static void main(String... args) {
        Light light = Light.RED;
        System.out.println("Duration of RED is: " + light.getDuration());
    }
}

编辑:根据Steve Kuo的建议,变量duration已经成为最终版。

答案 1 :(得分:0)

Adarshr的回答假定持续时间是光的颜色属性。如果它是一组特定信号的颜色属性,则可以使用EnumMap<light, Integer>

class Signal {
    private EnumMap<light, Integer> durations = new EnumMap<light, Integer>(light.class);
    Signal() {
        this.durations.put(light.red, 3);
        ....
    }
}