2011-05-25 118 views
0

編輯:我有兩個對象我必須映射到另一個。問題是屬性不完全匹配。我映射的對象是平坦的,有一羣getter和setter。所有非常好,並容易合作。 我具有與本映射到具有不同的結構有所的對象,團體如SecAltIDGrp[]和attritubes諸如下面的那些範圍內。這是使用Java設計中的嵌套RepeatingGrps問題

ObjectToMapTo.setSecAltIDGrp(SecAltIDGrp[]) 

我有幾個重複基團,我必須用值從吸氣劑從扁平物體的問題是這樣的映射集。要映射的目的是已GRPS的數組[] S必須通過從扁平物體的各種不同吸氣劑填充。我想不出一個乾淨的方式來做到這一點。

例如,我有一個代碼註釋數組,它具有以下結構。

public SecAltIDGrp[] populateComments(int NoComments) 
    { 

     SecAltIDGrp[] x = new SecAltIDGrp[NoComments]; 
     for(int i; i < NoComments; i++) 
     { 
      x[i].setAltID(obj.getVal); 
      x[i].setAltIDSource(arg0, arg1); 
     } 
    } 

然而陣列是由扁平物體不同的吸氣劑填充的每個元素...

我做不到的事情做這個酒吧在陣列內插入if語句和傳遞的一個很好的該對象作爲參數。這是相當可怕的編碼。

我應該爲許多這類羣體的做到這一點。一些數組元素設置器需要自己的數組。

+0

你提的問題是非常混亂。我無法理解你想要做什麼,所以很難提供幫助: – Kaj 2011-05-25 17:15:49

+0

完成一個編輯,告訴我它是否仍然不清楚,我會盡可能詳細地描述你的願望 – Will 2011-05-25 17:28:10

+0

你能解釋/顯示這個嗎? 「然而,數組中的每個元素都由來自平面對象的不同吸氣劑填充...」 – Kaj 2011-05-25 17:49:59

回答

0

而不是使用數組,嘗試使用HashMaps,這將幫助您更容易地傳遞/存儲對象。 如果你不與HashMap的鍵很感興趣,那麼你可以簡單地使用ArrayList。

HashMap將存儲require組和密鑰。這裏的關鍵將與您計劃使用的數組Index類似。

public HashMap< Integer , SecAltIDGrp > populateComments(int NoComments) 
{ 
    HashMap< Integer , SecAltIDGrp > hmSec = new HashMap< Integer , SecAltIDGrp >(); 
    for(int i; i < NoComments; i++) 
    { 
      SecAltIDGrp x = new SecAltIDGrp(); 

      x.setAltID(obj.getVal); 
      x.setAltIDSource(arg0, arg1); 

      hmSec.put(i , x); 
    } 

    return hmSec; 
} 

public class SecAltIDGrp{ 
    String altId = ""; 
    String altIdSource = ""; 

    public void setAltIDSource( String altIDSource) 
    { 
     this.altIdSource = altIDSource; 
    } 

    public void setAltID(String altId) 
    { 
     this.altId = altID; 
    } 
} 

確保getter和setter方法也會有相應的參數,以滿足仿製藥,以防止編譯期間的任何警告。

public class ObjectToMapTo 
{ 

    private HashMap< Integer , SecAltIDGrp > hmPrivGrp = new HashMap< Integer,SecAltIDGrp >(); 

    public void setSecAltIDGrp( HashMap< Integer , SecAltIDGrp > hmSecAltIDGrp) 
    { 
      this.hmPrivGrp = hmSecAltIDGrp; 
    } 
} 

這是你如何設置特定的組。存儲hashmap而不是數組。 ObjectToMapTo.setSecAltIDGrp(hmSec);

您可以通過HashMap的迭代,並能夠檢索各SecAltIDGrp

一些東西讀了起來:
http://www.javadeveloper.co.in/java-example/java-hashmap-example.html

+0

我沒有訪問任何一個對象的代碼,我只能嵌入它們我將不得不使用一個包裝他們。否則ArrayList的映射到一個數組。我敢肯定的ArrayList有一個方法。toArray()我希望:) – Will 2011-05-25 19:09:09