以前,我将 LegNo 枚举简单地定义为:
NO_LEG, LEG_ONE, LEG_TWO
通过调用return LegNo.values()[i];
,我能够获得与每个枚举关联的值。
但是现在我决定我希望LegNo
枚举NO_LEG
是 int -1 而不是 0 所以我决定使用私有构造函数来初始化并设置它的 int 值
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
现在唯一的事情是,因为我是这样做的,所以该values()
方法不适用于NO_LEG
枚举。如何获取与 int 关联的枚举?除了使用 case switch 语句或 if-elseif-elseif 之外,还有其他有效的方法吗?
我可以看到很多与从枚举中获取 int 值有关的 SO 问题,但我追求的是相反的。