能否請您提供建議或提供一些提示如何做到以下幾點。 我有POJO讓我們說它被稱爲BankHistoryData。我想將兩個表中的數據複製到此POJO(主表 - 銀行及其存檔 - BankArchive)。表格有很多基本相同的字段,所以我不想重複我的自我。
我搜索了一下,發現了一個可以幫助我的工具 - Java通用構造函數。 但是,我對泛型有點新,不確定究竟該如何去做。
我想我應該有這樣的事情:如何在java中使用通用拷貝構造函數
public class BankHistoryData<T extends Serializable> {
// I would like to set this fields from the object T
private field1;
private field2;
// and many more ...
T a; // source object from which to copy values
public BankHistoryData(T a) {
this.a = a;
copyData();
}
// NOT SURE ABOUT THIS ... something like this
public void copyData() {
if(T instanceof Bank) {
this.field1 = ((Bank)a).getSomeField();
// and so on ...
} else if (T instanceof BankArchive) {
this.field1 = ((BankArchive)a).getSomeField();
// and so on ...
} else {
trow new IllegalArgumentException("Not supported table");
}
}
}
任何建議都歡迎。謝謝!
mismas
[編輯] 我已決定不使用通用對於這一點,因爲我覺得那些2美分@Alex其中對於這一點。相反,我會在業務邏輯服務層中執行此複製邏輯(POJO將保持「愚蠢」)。
雖然,我會讓這兩個hibernate對象實現通用接口(只有共享字段的getter方法在這裏)。最後,我將在我的業務邏輯服務層上創建一個複製方法,並使其將該接口參數用於複製字段。
希望這會幫助別人。此外,歡迎任何評論。
乾杯!
我的想法。但是,我不確定Bank和BankArchive是否可以修改。 – renz
我沒有提到Bank和BankArchive是Hibernate對象。所以,我不確定你打算在這個界面上放什麼東西? (getters和setters?)P.s我可以在一定程度上修改它們...... – mismas
@mismas是的,任何常見的getter和setters在'Bank'和'BankArchive'之間共享。 –