我在Java中遇到了枚举问题。我有一个从-1
开始的枚举:
public enum AipType {
Unknown(-1),
None(0),
AipMod(1),
AipNoMod(2);
private final int id;
AipType(int id) {this.id = id;}
public int getValue() {return id;}
}
问题出现在我使用这段代码来初始化一个
AipType
变量时。AipType at = AipType.getValues()[index];
其中index
是区间[-1,0,1,2]
中的一个数字,-1
会破坏值。例如,0返回Unknown,1返回AipMod,2返回AipNoMod。
我使用了这个实现,因为我需要手动设置每个枚举案例的数值。在其他情况下,我有一个值之间的间隙,所以我有同样的问题:我不能使用values()
,然后用[]
访问。
我尝试以这种方式初始化
AipType at = AipType(index);
但是它不起作用。
有什么想法吗?谢谢...
AipType.getValues()[index + 1];
也许? - Andrei Nicusan