我试图创建一个动态继承另一个类属性的Domain Class Constructor。但我无法让它正常工作。
以下是一个例子:
class Example1 {
String name;
String location;
}
class Example2 extends Example1 {
String status;
public Example2 (Example1 orig){
// Code here to set this.name and this.location to name and location from orig
// dynamically, so adding a field in Example1 does not require me to add that
// field here.
}
}
答案 0 :(得分:2)
你工作太辛苦了,只需复制属性:
class Example2 extends Example1 {
String status
Example2() {}
Example2(Example1 orig) {
this.properties = orig.properties
}
}
答案 1 :(得分:1)
经过充分的故障排除和在线搜索,我找到了一个解决方案,以防万一有人在寻找类似的东西:
public Example2(Example1 orig){
def d = new DefaultGrailsDomainClass(Example1.class)
d.persistentProperties.each { val ->
this[val.name] = orig[val.name]
}
}
包括这个:
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass
答案 2 :(得分:0)
我不完全清楚你想要完成的是什么,但有没有理由你不能在“Example2”类中有一个“Example1”字段?