2012-12-04 87 views
-1

我有兩個pojos。與同名字段同步兩個pojos

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 
} 

有沒有可用於從Pojo2自動創建Pojo1的Java API?

即:

Pojo1 newPojo1 = SomeLibrary.fromPojoWithLikeNamedFields(pojo2); 

// newPojo1 now has all the fields that had the same name from pojo2 
+0

http://stackoverflow.com/questions/5937567/copy-pojo-content-from-one-bean-to-another –

+1

你可以使用反射來達到這個目的,用來自相關獲取器的值調用setter。 .. – GoofyHTS

+0

你爲什麼需要Pojo ?.這是相同的類型。甚至serialVersionUID也是一樣的。 – Gervase

回答

-1

不會拷貝構造函數做的工作?

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

還是我誤解的東西。 ..?

+1

+1(sry,超過我的限額)。我覺得和你一樣。只有我會改變的是調用getters,因爲他的屬性是私人的。 – jlordo

+0

他不想在第一個地方寫複製構造函數。 –

+0

@jlordo,優點,我完全忽略了;修改代碼來使用getters! :) – mre