使用Groovy 2.0(测试版)....

有一个bean既有简单(即原始)和复杂(即其他bean作为子)属性 . 想要以递归方式将bean实例中的属性复制到新bean中,并对每个属性应用函数调用 . 例如,一个属性可能包含一个表达式(即表示尚未评估的值的东西),在“克隆”/“复制”阶段,我想应用一个评估,以便新bean获得具体值 .

Groovy的新手和我的胃告诉我有一个简单的方法来处理这个问题 . Bean是用Groovy编写的 .

例如:

Source.name: '${xpath:applicationServer/name}'
Source.type: 'Server'
Source.create.name: 'com.bea:Name=${domain.name},Type=Domain'
....

nametype 字段是Source类的简单部分,而 create 是复杂的(嵌套属性) . 复制时我想根据上下文评估变量(即$ {xpath:...},$ ,公共配置设置) . 请注意,复制是在同一个类的对象之间完成的 .

看到类似的东西:Copy Groovy class properties其中完成了不同类之间的交集,但嵌套属性的构造不是递归的 .