如何在grails构造函数中设置合成字段的值?

时间:2014-01-25 17:18:09

标签: grails

说我的超类中有一个枚举..

enum SomeEnum{
    //some enums here.
}

然后在我的父类中,我有:

class myParentClass {
    SomeEnum someEnum
}

然后我的孩子上课:

class myChildClass {
MyParentClass myParentClass

myChildClass(){
   //what to place here?
   //I expect.. super.someEnum = SomeEnum.ENUM_HERE but i didnt extend it.. so?
   //  I tried this.someEnum = SomeEnum.ENUM_HERE but it didn't work either... :(
}
}

1 个答案:

答案 0 :(得分:1)

目前您有一个合成关系,而不是继承。如果您希望myChildClass成为myParentClass的孩子,那么就像这样定义您的孩子

class myChildClass extends myParentClass{
}

然后您可以像这样实例化您的子对象

def child = new myChildClass(someEnum : ENUM_VALUE)

父级中定义的任何属性都将继承给子级。无需在子类中定义构造函数。所有Grails域都带有动态Map构造函数,允许您在实例化新实例时将属性作为映射传递。