Grails在对象引用上设置元类属性

时间:2016-09-24 17:14:48

标签: grails groovy metaclass

使用Grails域对象,我偶然发现了尝试设置某些属性的问题。

var stepchild=parent.children.find{ it.id==xInt };
stepchild.metaClass.birthMom=biologicalMothersName;

parent.children.each{child->
    //when it gets to stepchild no metaclass property birthMom exists....
}

也不会在引用的对象

上设置自定义错误
var stepchild=parent.children.find{ it.id==xInt };
stepchild.errors.rejectValue('parent',"Not biological parent");

parent.children.each{child->
    //when it gets to stepchild no errors....
}

我猜测{}没有返回父对子子对象的真实引用?

1 个答案:

答案 0 :(得分:0)

对于尝试在stepChild对象上设置属性/属性的方式,您应该使用MetaClass.setAttribute()方法:

stepchild.metaClass.setAttribute(stepChild,'birthMom', biologicalMothersName)