如何在grails中使用枚举(不在域类中)
我想使用枚举来表示一些选择值。在如何在grails中使用枚举(不在域类中),grails,groovy,enums,Grails,Groovy,Enums,我想使用枚举来表示一些选择值。在/src/groovy文件夹中,在包com.test下,我有以下枚举: package com.test public enum TabSelectorEnum { A(1), B(2) private final int value public int value() {return value} } 现在,我尝试从控制器访问它,如: TabSelectorEnum.B.value() 但它抛出了一个例外: Caused by: org
/src/groovy
文件夹中,在包com.test
下,我有以下枚举:
package com.test
public enum TabSelectorEnum {
A(1), B(2)
private final int value
public int value() {return value}
}
现在,我尝试从控制器访问它,如:
TabSelectorEnum.B.value()
但它抛出了一个例外:
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: Could not initialize class com.test.TabSelectorEnum
我做错了什么
更新:清理并重新编译后,错误代码更改为:
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.test.TabSelectorEnum(java.lang.String, java.lang.Integer, java.lang.Integer)
访问枚举值的方式似乎有问题,但我不知道是什么。您没有为int值定义构造函数:
package com.test
enum TabSelectorEnum {
A(1),
B(2)
private final int value
private TabSelectorEnum(int value) {
this.value = value
}
int value() { value }
}