2011-11-19 80 views
2

按要求,我已經解析了一個XML文件,並設置數據爲這兩個DTO類:如何ArrayList的數據映射到DTO

public class DetailsDTO implements java.io.Serializable { 
private String  userid; 
private String  accountnum; 
private Customer customer; 
// setters and getters 

public class Customer implements Serializable 
{ 
private String   street; 
private String   country; 
// setters and getters 

加入Customer類的數據DetailsDTO後,我加入此DetailsDTOArrayList如下所示:

List list = new ArrayList(); 
// and added these DetailsDTO class to an ArrayList 
list.add(detailsDTO) 

現在有稱爲WholeDetails一個主DTO如圖所示地包括在各種DTO類中定義的所有變量。

class WholeDetails 
{ 
private String userid; 
private String accountnum; 
private String street; 
private String country; 
} 

現在,正如你所看到的,所有的數據在ArrayList內都是可變的。

如何從ArrayList中提取內容並將其映射到WholeDetails

回答

2

您將不得不進行映射,例如,

List<DetailsDTO> list = new ArrayList<DetailsDTO>();  
// and added these DetailsDTO class to an ArrayList 
list.add(detailsDTO); 

List<WholeDetails> wholeDTOList = new ArrayList<WholeDetails>(); 
for(DetailsDTO dto:list){ 
    WholeDetails whole = new WholeDetails(); 
    whole.setUserid(dto.getUserid()); 
    whole.setAccountNum(dto.getAccountNum()); 
    whole.setStreet(dto.getCustomer().getStreet()); 
    whole.setCountry(dto.getCustomer().getCountry()); 
    wholeDTOList.add(whole); 

} 

如果你喜歡它更短,你可以創建一個在DetailsDTOWholeDetailsDTO映射適配器類和結果對象添加到列表中

+0

非常感謝你的幫助,你救了我今天失眠的夜晚。 – Revathi