2013-04-28 46 views
1

我已經在最近問了一個關於JAXB的問題,可以在以下網址找到:How to marshal/unmarshal Java objects with private fields using JAXB如何使用JAXB對鏈接的Java對象進行編組/解組編號

我目前的問題是,我試圖編組使用鄰接列表結構實現的圖結構。

頂點類:

@XmlElement 
private int index; 
@XmlElementWrapper(name="adj_list") 
@XmlElement(name="vertex") 
private ArrayList<Vertex> adjList; 

邊緣種類:

@XmlElement(name="vertex") 
private Vertex v1; 
@XmlElement(name="vertex") 
private Vertex v2; 
@XmlElement 
private String label; 

Graph類:

@XmlElementWrapper(name="vertices") 
@XmlElement(name="vertex") 
private ArrayList<Vertex> vertices; 
@XmlElementWrapper(name="edges") 
@XmlElement(name="edge") 
private ArrayList<Edge> edges; 

當我填充圖實例,並嘗試名帥它,我得到一個異常,特別是javax.xml.bind.MarshalException。

據我瞭解,這個問題是由於事實上,頂點類存儲頂點ArrayList這是一個潛在的循環,所以JAXB是抱怨。我搜索了一下,但似乎無法爲此提供解決方案。

回答