【问题标题】:Tools for merging java beans用于合并 java bean 的工具
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用 apache common beanutils。没有内置的方法来做你想做的事情,但你可以使用里面的辅助方法来实现同样的效果

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 2012-06-17
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2020-03-20
      相关资源
      最近更新 更多