2011-07-20 48 views
0

我想從一個字符串中獲得一個枚舉值,如:Java的Enum.valueOf()的問題

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) 

我知道在JDK版本1.5之前:

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

會工作,但我使用的是JDK 1.6。任何人都可以爲這類問題提供一個工作示例嗎?

謝謝。

回答

6

java.util.logging.Level根本不是枚舉。你實際上是的意思是Level類,還是不一樣?

您發佈的第二個片段將不能工作,但如果你真的談論正常Level類,你可以使用:

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

該死的,我一直假設java.util.logging.Level一直是枚舉。難怪爲什麼valueOf()會一直失敗。 – cyberguijarro

0

Level.WARNING,以及Level.INFO和其他洛級別不是ENUM的。

它們是Level.java類中的static final變量。