枚举valueOf IllegalArgumentException:没有枚举const类

Rya*_*van 7 java enums

我过去在java中使用了枚举,但由于某种原因,我现在收到一个奇怪的错误.抛出错误的代码行是:

switch(ConfigProperties.valueOf(line[0].toLowerCase()){
    ...
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个

java.lang.IllegalArgumentException: No enum const class
  allautomator.ConfigProperties.language 
Run Code Online (Sandbox Code Playgroud)

在示例行中是一个字符串数组.

我现在真的很困惑,我不知道什么可能是错的.

aio*_*obe 18

枚举常量区分大小写,因此请确保常量确实是小写的.另外,我建议您trim()输入以确保没有前导/尾随空白区域潜入:

ConfigProperties.valueOf(line[0].toLowerCase().trim())
Run Code Online (Sandbox Code Playgroud)

作为参考,这是一个包含您的行的工作示例程序:

enum ConfigProperties { prop1, prop2 }

class Test {
    public static void main(String[] args) {

        String[] line = { "prop1" };

        switch (ConfigProperties.valueOf(line[0].toLowerCase())) {
        case prop1: System.out.println("Property 1"); break;
        case prop2: System.out.println("Property 2"); break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Property 1
Run Code Online (Sandbox Code Playgroud)