可能重复:
如何从Java中的索引获取枚举值?
我有一个像:
public enum EnumTest {
ONE, TWO, THREE
}
Run Code Online (Sandbox Code Playgroud)
我有一个整数,如1 = ONE 2 = TWO 3 = THREE
现在我得到一个像2这样的整数,并希望从中生成EnumTest,它应该返回TWO 如何做到这一点?
或者,为了更灵活:
public enum EnumTest {
ONE(1), TWO(2), THREE(3);
private int value;
EnumTest(int value) {
this.value = value;
}
static EnumTest getByValue(int i) {
for (EnumTest e : values()) {
if (e.value == i) {
return e;
}
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
想想看到这个枚举的未来开发者,如果你留下一个没有文档的values()用途,任何人都可以通过添加新项目来打破它.因为没有文档强制执行元素的顺序.