用于合并java bean的工具

时间:2011-01-13 18:22:21

标签: java merge introspection

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

2 个答案:

答案 0 :(得分:3)

DozerSmooks。如果您只想要bean合并,Dozer就是赢家。如果您正在寻找其他类似csv to pojo等的用例,请查看Smooks。

答案 1 :(得分:1)

您可以使用常见的beanutils apache。没有内置的方法来做你想做的事情,但你可以使用其中的辅助方法来实现相同的