将字符串转换为等效的枚举值

新手上路,请多包涵

我是否可以使用 Java 将 — 转换为 String Enumeration 的等效值。

我当然可以用一个大的 if-else 语句来做到这一点,但如果可能的话,我想避免这种情况。

鉴于此文档:

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Enumeration.html

如果没有 ifs 或 case 语句,我不太希望这是可能的。

原文由 Ankur 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 657
2 个回答

希望您意识到, java.util.Enumeration 与 Java 1.5 枚举 类型不同。

您可以简单地使用 YourEnum.valueOf("String") 来获得等效的枚举类型。

因此,如果您的枚举被定义为:

 public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY
}

你可以这样做:

 String day = "SUNDAY";

Day dayEnum = Day.valueOf(day);

原文由 adarshr 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设您使用 Java 5 枚举(因为您提到了旧的 Enumeration 类,所以不太确定),您可以使用 valueOf java.lang.Enum 子类 —6cedbf0ddd60f9a7d729e3698a-25-7132 的方法:

 MyEnum e = MyEnum.valueOf("ONE_OF_CONSTANTS");

原文由 Xion 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题