java - 如何从java中的整数中获取枚举?

标签 java

<分区>

Possible Duplicate:
How to get Enum Value from index in Java?

我有一个像这样的枚举:

public enum EnumTest {
    ONE, TWO, THREE
}

我怎么有一个像 1=ONE 2=TWO 3=THREE 这样的整数

现在我得到一个像 2 这样的整数,想从中生成 EnumTest,它应该返回两个 怎么做?

最佳答案

或者,为了更灵活:

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;
    }
}

想想看这个枚举的 future 开发者,如果你留下一个未记录的 values() 使用,任何人都可以通过添加新项目来破坏它。因为没有文档强制执行元素的顺序。

关于java - 如何从java中的整数中获取枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280428/

相关文章:

java - 使用 XMLUnit 忽略测试 XML 中不存在的所有元素

java - 如何在部署在heroku上的react应用程序中配置Web服务url以访问也部署在heroku中的java REST Web服务

java - 如何将变量参数传递给instanceof?

java - 获取我刚刚添加到 Java/Android 中的 ArrayList 的对象的索引

java - 在 Java 中创建自定义协议(protocol)插件

java - 如何检测 Java MIDI 中的特定 MIDI Controller ?

java - 对嵌套 JNA 结构对象进行单元测试时出现意外错误

java - JTable 单元格编辑器错误

java - 使用 2 个线程打印奇数和偶数?

java - 在 Maven 项目中使用 SWTBot