hadoop - enum.valueOf - java.lang.IllegalArgumentException:无枚举常量

时间:2013-06-12 21:32:24

标签: java hadoop enums illegalargumentexception

我有一个非常奇怪的问题。我正在向我的代码发送一个字符串(“ZIP”),我正在尝试使用枚举上的valueOf方法将其转换为枚举。我得到了“No enum constant”illegalArgumentException。

所以我添加了两个日志语句:

String optionValue = "[" + cmdLine.getOptionValue("c").replaceAll("\n", "").replaceAll("\r", "") + "]";
StringBuilder types = new StringBuilder();
for (MyType v : MyType.values()) {
    types.append("[" + v.toString() + "] ");           
}
log.info(optionValue+"::"+types);

日志的结果是:[ZIP] :: [ZIP] [ABC] [DEF]

但我仍然得到IllegalArgumentException

我正在我的机器上使用maven构建代码,然后使用“put”命令将其“放”到hdfs上,以便我可以运行它。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

您的文本中可能还有其他不可打印的字符“\ n”和“\ r”。此外,您可能需要双重逃避。

试试这个:

optionValue = cmdLine.getOptionValue("c").replaceAll("[^a-zA-Z0-9\\s]", "");