我正在尝试在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)
答案 0 :(得分:1)
问题有些微妙:引号。
如果仔细查看错误消息,您将看到提供给valueOf的字符串不是region
,而是带有引号的region"
。看起来像引号是错误消息的一部分,但它不是,它是值的一部分,这导致不匹配。