2012-07-20 91 views
0
HashSet<String> outScopeActiveRegionCodeSet=new HashSet<String>(); 
for (String regionCode : outScopeActiveRegionCodeSet) { 
    //code required 
} 

這裏對象的我需要創建新對象TransactionLOgDTO動態insed像below.If環有在HashSet的3個regioncodes我需要regionCode附加到新對象的名稱3個TransactionLOgDTO對象。動態生成在Java

TransactionLOgDTO regionCode1DTO=new TransactionLOgDTO(); 

} 

我需要像這樣做...........................

for (String regionCode : outScopeActiveRegionCodeSet) { TransactionLOgDTO "regionCode"+DTO=new TransactionLOgDTO(); } 
+2

那麼,你的問題是什麼?您已經知道您可以使用'new'運算符創建新對象嗎?對象沒有名字;變量做。 – Jesper 2012-07-20 10:02:07

+0

你的問題更像是一個聲明。沒有明顯的問題,如果你知道如何?那麼限制你這樣做的是什麼? – doNotCheckMyBlog 2012-07-20 10:04:07

+1

你的意思是你想動態地給變量賦值名字嗎?如在var1,var2,var3,...,varN? – Lopina 2012-07-20 10:04:24

回答

4

我建議使用ArrayList,而不是把指標在變量名:

List<TransactionLOgDTO> regionCodeDTOs = new ArrayList<TransactionLOgDTO>(); 
HashSet<String> outScopeActiveRegionCodeSet=new HashSet<String>(); 
for (String regionCode : outScopeActiveRegionCodeSet) { 
    regionCodeDTOs.add(new TransactionLOgDTO()); 
} 

,或者因爲你沒有使用regionCode字符串:

List<TransactionLOgDTO> regionCodeDTOs = new ArrayList<TransactionLOgDTO>(); 
HashSet<String> outScopeActiveRegionCodeSet=new HashSet<String>(); 
for (int i = 0; i < outScopeActiveRegionCodeSet.size(); i++) { 
    regionCodeDTOs.add(new TransactionLOgDTO()); 
} 

然後你可以使用訪問它們:

regionCodeDTOs.get(i); 

[編輯]
如果你想在regionCode連接到TransactionLogDTO我會建議Map instead

Map<String, TransactionLOgDTO> transactionCodeDTOs = new HashMap<String, TransactionLOgDTO>(); 
HashSet<String> outScopeActiveRegionCodeSet=new HashSet<String>(); 
for (String regionCode : outScopeActiveRegionCodeSet) { 
    transactionCodeDTOs.put(regionCode, new TransactionLOgDTO()); 
} 
檢索哪些

像:

transactionCodeDTOs.get(regionCode); 
+0

是@ashwinsakthi ....你可以像keppil解釋 – ankit 2012-07-20 10:07:02

+0

Keppil ...現在我已經得到了對象...但如果我想傳遞日誌對象..我需要一個名稱...所以我如何將名稱添加到對象... – ashwinsakthi 2012-07-20 10:18:01

+0

說如果我想單獨傳遞第一個區域的日誌對象我怎麼能這樣 – ashwinsakthi 2012-07-20 10:19:53