Groovy以递归方式复制属性以及对每个属性应用调用

时间:2012-07-24 13:38:15

标签: properties groovy clone

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

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

Groovy的新手,我的肚子告诉我有一个简单的方法可以解决这个问题。豆是用Groovy编写的。

例如:

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

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

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

0 个答案:

没有答案