使用内省合并两个简单,扁平的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本身的属性。