我正在做一些粗俗的事情,比如使用 Groovy 的 metaClass 和 Eval 从 XML 导入动态地将属性分配给对象:
class ObjectBuilder {
def assignProp(String propName, String propValue) {
Eval.x(this, "x.metaClass.${propName} = '${propValue}'")
}
}
def h = new ObjectBuilder()
h.assignProp('name', 'Henson')
println(h.name)
不过,我想做的是能够在其内部实例化该类的另一个副本:
Eval.x(this, "x.metaClass.${ObjName} = new ObjectBuilder()")
但我不能,因为我认为这个类没有传递给绑定。还有其他解决方案吗?