有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java的枚举。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");

可以,但我使用的是JDK1.6。有人能为这类问题提供一个有效的例子吗

谢谢


共 (2) 个答案

  1. # 1 楼答案

    ^{}根本不是枚举。你是说那个Level班,还是另一个班

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

    Level level = Level.parse("WARNING");
    
  2. # 2 楼答案

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

    它们是Level.java类中的static final变量