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);