0
我有一些嵌套的對象。我們稱它們爲A,B和C.映射嵌套對象(java)
public class A {
private String name;
private String desc;
//......{some other fields}
private List<B> bList;
}
public class B {
private String name;
private String desc;
//......{some other fields}
private List<C> cList;
}
public class C {
private String name;
private String desc;
......{some other fields}
}
現在我只想映射這些對象的一些屬性。比方說,我只需要A的名稱和B的列表,而只需要B的C的列表,並且只需從C中刪除。因此,我創建了DTO對象。
public class ADTO{
private String name;
List<BDTO> bList;
}
public class BDTO{
List<CDTO> cList;
}
public class CDTO{
private String desc;
}
而且我會手動的地圖ADTO,B到BDTO,和C CDTO用類似這樣的代碼:
private ADTO map(A a)
ADTO adto = new ADTO();
List<BDTO> bDTOList = new ArrayList<>();
adto.setName(a.getName());
for (B b : a.getBlist()){
BDTO bdto = new BDTO();
bdto.setCList = map(b.getCList());
bDTOList.add(bdto);
}
adto.setBList(bDTOList);
return adto;
}
private List<CDTO> map(List<C>){
........ANOTHER BORING MAPPING
}
有沒有更簡單的方法(一些設計模式也許)來實現這樣的任務?想象一下,如果我們有更大的類或更多的對象來映射更深的嵌套,會發生什麼。只有很多代碼才能顯示/隱藏某些字段。 P.S.我將需要寫出至少3個不同的「觀點」這樣的對象,「觀點」的數量可以在未來增加。所以我正在尋找解決方案,以便在未來更輕鬆地添加新的「視圖」。