Java Enum.valueOf()问题

时间:2011-07-20 10:57:13

标签: java enums

我正在尝试从String派生枚举值,例如:

Level level = Enum.valueOf(Level.class, "WARNING");

但我得到的是编译器警告,如:

Test.java:8: <T>valueOf(java.lang.Class<T>,java.lang.String) in java.lang.Enum cannot be applied to (java.lang.Class<java.util.logging.Level>,java.lang.String)

我知道1.5之前的JDK版本:

Level level = Level.valueOf("WARNING");

可行,但我使用的是JDK 1.6。有人能为这类问题提供一个有效的例子吗?

感谢。

2 个答案:

答案 0 :(得分:6)

java.util.logging.Level根本不是枚举。你真的意味着那个Level班级,还是另一个班级?

您发布的第二个代码段也不起作用,但如果您真的正在谈论正常的Level类,则可以使用:

Level level = Level.parse("WARNING");

答案 1 :(得分:0)

Level.WARNING,以及Level.INFO和其他记录级别都不是ENUM。

他们是static final类中的Level.java个变量。