9

我想使用具有相同字段但名称不同的 BeanUtils 将属性值从 A 类复制到 B 类。是否可以提供属性名称到不同名称,年龄到不同年龄等的映射,并实现复制?我很想知道这是否可以通过任何方式仅使用 Apache Commons 实用程序(而不是任何其他工具)。

class ClassA{
    private String name;
    private Integer age;
    ... // Setter and Getter methods
} 

class ClassB{
    private String differentName;
    private Integer differentAge;
    ... // Setter and Getter methods for the private fields
}
4

1 回答 1

4

Apache Commons BeanUtils 具有方法populate(Object bean, Map properties)接受映射以使用键值对填充 Bean。

注意:我刚刚看到了 Apache-Commons 的限制——但它可能对其他人仍然有用,而且就我而言,这是更好的解决方案。

当名称匹配时使用Dozer,它将自动复制值。或者在您的情况下,您可以在 xml 映射文件中指定源和目标成员。

于 2012-10-19T08:50:08.587 回答