【发布时间】:2011-06-08 16:40:12
【问题描述】:
使用自省很容易合并两个简单的扁平 java bean:
BeanInfo info = Introspector.getBeanInfo( ContactBean.class );
PropertyDescriptor pDescArr[] = info.getPropertyDescriptors();
for(PropertyDescriptor pDesc : pDescArr){
//copy properties and check for conflicts here
}
但是,当属性包含嵌套 bean 或集合时,它会变得有点复杂。是否有一个智能工具可以处理复杂 bean 的深度合并?
关于我希望合并如何工作的更多细节:
给定一个源 bean 的集合和一个空的目标 bean,应该将简单的属性从源复制到目标,除非发生冲突。如果存在冲突,该字段应留空。如果属性是集合类型,则源 bean 的值应该被组合,不包括重复项,并复制到目标属性。这些规则应该递归地应用于 bean 本身的属性。
【问题讨论】:
-
除了 google 中没有任何内容之外,该工具需要非常可配置以决定如何处理冲突。你的合并规则是什么?
-
@Dave -- 在原始问题中添加了对我的合并规则的描述。
标签: java merge introspection