我想使用具有相同字段但具有不同名称的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
}
答案 0 :(得分:1)
Apache Commons BeanUtils有方法,方法populate(Object bean, Map properties)接受一个映射,用键值对填充Bean。
注意:我刚刚看到了Apache-Commons的限制 - 但它可能对其他人有用,而且我担心的是更好的解决方案。
当名称匹配时使用Dozer会自动复制值。或者在您的情况下,您可以在xml映射文件中指定源成员和目标成员。