Java 将两个具有相似命名字段的POJO同步在一起

Java 将两个具有相似命名字段的POJO同步在一起,java,automatic-properties,Java,Automatic Properties,我有两个波乔 public class Pojo1 implements Serializable { private static final long serialVersionUID = 1302290920579795856L; private Long id; private String idNumber; private String vendorNumber; private Date expires; // Getter

我有两个波乔

public class Pojo1 implements Serializable {

    private static final long serialVersionUID = 1302290920579795856L;

    private Long id;
    private String idNumber; 
    private String vendorNumber; 
    private Date expires;

    // Getters and setters for each one
}

public class Pojo2 implements Serializable {

    private static final long serialVersionUID = 1302290920579795856L;

    private Long id;
    private String idNumber; 
    private String vendorNumber; 
    private Date expires;
    private String otherData;

    // Getters and setters for each one
}
是否有Java API可用于从Pojo2自动创建Pojo1

即:


复制构造函数不会做这项工作吗

public Pojo1(Pojo2 pojo2){
    this.id = pojo2.getId();
    this.idNumber = pojo2.getIdNumber();
    this.vendorNumber = pojo2.getVendorNumber();
    this.expires = pojo2.getExpires();
}
然后就这样使用,

Pojo1 newPojo1 = new Pojo1(pojo2);

或者我误解了什么…?

您可以使用反射来实现这一点,使用相关getter的值调用setter…为什么需要Pojo?。是同一类型的。甚至serialVersionUID也是相同的。+1(sry,超过我的每日限制)。我想和你一样。我唯一想改变的是调用getter,因为他的属性是私有的。他不想一开始就编写复制构造函数。@jlordo,很好的一点,我完全忽略了这一点;修改代码以使用getter!:)@TomG,我认为包含这个复制构造函数比使用第三方库更有意义。我完全同意,也没有投你反对票——只是指出,正如我所读到的,最初的问题暗示了对任何两个具有类似bean属性的POJO的通用方法。
Pojo1 newPojo1 = new Pojo1(pojo2);