我正面临这个错误
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: AnimalInfoType(java.lang.String, java.lang.Integer, java.lang.Integer) when
通过“run-app”启动应用程序,我为 Enum 创建了构造函数,如下所示:
package jogoanimais
public enum AnimalInfoType
{
ANIMAL(1),
ACTION(2)
final int value
private AnimalInfoType(int value) {
this.value = value
}
int value() { value }
}
我的域类是这样的:
class AnimaisTreeMap {
String nodeDescription
AnimalInfoType nodeInfo
AnimaisTreeMap yesAnswerNode
AnimaisTreeMap noAnswerNode
static constraints = {
yesAnswerNode nullable:true
noAnswerNode nullable:true
}
static mappedBy = [ yesAnswerNode: "none", noAnswerNode: "none" ]
static mapping = {
yesAnswerNode cascade: 'delete'
noAnswerNode cascade: 'delete'
}
}
在我的 BootStrap.groovy 中,我像这样填写表格:
def noAnswer = new AnimaisTreeMap(nodeDescription:"macaco",
nodeInfo: AnimalInfoType.ANIMAL,
noAnswerNode:null,
yesAnswerNode:null)
noAnswer.save(failOnError: true)
def yesAnswer = new AnimaisTreeMap(nodeDescription:"tubarão",
nodeInfo: AnimalInfoType.ANIMAL,
noAnswerNode:null,
yesAnswerNode:null)
yesAnswer.save(failOnError: true)
new AnimaisTreeMap(nodeDescription:"vive na água",
nodeInfo: AnimalInfoType.ACTION,
noAnswerNode: noAnswer,
yesAnswerNode: yesAnswer).
save(failOnError: true)
}
我在 BootStrap.groovy 做错了什么?
最佳答案
删除枚举构造函数及其公共(public)定义。没必要,默认情况下所有类都是公共(public)的。
并编辑以 Enum 结尾的类。动物信息类型枚举。
enum AnimalInfoTypeEnum
{
ANIMAL(1),
ACTION(2)
final int value
int value() { value }
}
关于grails - Groovy/Grails - 使用枚举运行应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341776/