2013-04-28 42 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是抱怨。我搜索了一下,但似乎无法为此提供解决方案。

回答