enum.ValueOf需要完全限定的路径吗?

时间:2016-01-29 15:34:41

标签: java enums

我正在尝试在Java中使用valueOf将String解析为枚举,并且它似乎需要一个完全限定的枚举路径作为字符串,它在SO和其他地方进行争论。例如:

String sRange = "region";
order.range = ItemOrder.eRange.valueOf( sRange );

其中ItemOrder.eRange是:

class ItemOrder {
    public enum eRange {
        area,
        zone,
        region
    }
}

给出错误:

  

线程中的异常" main" java.lang.IllegalArgumentException:没有枚举   常量ItemOrder.eRange.region"在   java.lang.Enum.valueOf(Enum.java:236)

1 个答案:

答案 0 :(得分:1)

问题有些微妙:引号。

如果仔细查看错误消息,您将看到提供给valueOf的字符串不是region,而是带有引号的region"。看起来像引号是错误消息的一部分,但它不是,它是值的一部分,这导致不匹配。