用于合并java bean的工具

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

推土机或Smooks 。 如果您只想要bean合并,Dozer就是赢家。 如果您正在寻找其他用例如csv to pojo等,那么请看看Smooks。

您可以使用apache common beanutils 。 没有内置方法可以执行您要执行的操作,但您可以使用其中的帮助方法来实现相同的操作