java.lang.IllegalArgumentException的原因是什么:没有枚举 const 类,即使迭代 values() 工作正常?
这个问题基本上是我上一个问题的延伸。我问了前面的问题,以确保在类加载时填充Enum常量。这是我的类,再次添加了一个简单的方法:getByName
public enum PropName {
CONTENTS("contents"),
USE_QUOTES("useQuotes"),
ONKEYDOWN("onkeydown"),
BROWSER_ENTIRE_TABLE("browseEntireTable"),
COLUMN_HEADINGS("columnHeadings"),
PAGE_SIZE("pageSize"),
POPUP_TITLE("popupTitle"),
FILTER_COL("filterCol"),
SQL_SELECT("sqlSelect"),
;
private String name;
private PropName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public static PropName getByName(String name){
return PropName.valueOf(name);
}
}
对该方法的调用正在抛出,但是如果我用以下代码替换此方法,则它只会起作用。getByName("columnHeadings")
java.lang.IllegalArgumentException: No enum const class labware.web.component.limsgrid.PropName.columnHeadings
public static PropName getByName(String name){
for(PropName prop : values()){
if(prop.getName().equals(name)){
return prop;
}
}
throw new IllegalArgumentException(name + " is not a valid PropName");
}
关于我在这里做错了什么的任何想法?