【发布时间】:2016-03-24 09:09:08
【问题描述】:
假设我们有一个像这样定义的对象 A:
public class ObjectA {
private Attribute a1;
private Attribute a2;
private Attribute a3;
}
出于某种原因,我需要使用对象 A 的前两个属性创建第二个对象 B:
public class ObjectB {
private Attribute a1;
private Attribute a2;
}
所以我的问题是:将 Object A 复制到 Object B 的最佳方法是什么? 我一直在逐个复制 getter 和 setter 的属性,但有些事情告诉我必须有更好的方法来做到这一点!尤其是当对象会有很多属性的时候,我只好写一行行的代码,把它们全部复制到第二个Object B中……
非常感谢:)
编辑:“可能与另一个问题重复”提醒我:How do I copy an object in Java?
我的问题略有不同,因为我正在处理 2 个不同的对象,它们只是共享相同的属性但不完全!
【问题讨论】:
-
看看使用反射的 Apache commons BeanUtils:commons.apache.org/proper/commons-beanutils
-
Berger 和 Tom,谢谢,我会在这些链接中获得战利品! @hahn 我的问题有点愚蠢吗? ^^'
-
我同意这不是复制对象,而是在不同层次结构中的对象之间复制(部分)数据。 Dozer 是一个很好的工具,因为它可以自动处理常见的属性(相同的名称和类型),而无需编写任何额外的行。