enum.valueof-java.lang.illegalargumentexception:没有枚举常量

1cosmwyk  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(448)

我有个很奇怪的问题。我将一个字符串(“zip”)发送到我的代码中,并尝试使用enum上的valueof方法将其转换为enum。我得到了“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][][def]
但我还是得到了 IllegalArgumentException .
我在我的机器上使用maven构建代码,然后使用“put”命令将代码“放到”hdfs上,这样我就可以运行它了。
如何解决此问题?

gudnpqoy

gudnpqoy1#

您的文本中可能有“\n”和“\r”以外的其他不可打印字符。另外,你可能需要双重逃脱。
试试这个:

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

相关问题