2011-02-05 84 views
1

我需要轉儲Java對象的所有屬性。我發現了一些這樣做的功能,但沒有一個處理自我引用和我發現的所有功能都成爲無限遞歸的螺旋。Java轉儲對象

//我將在Android上運行此功能,但這應該不重要。

+2

你有沒有使用調試器和檢查對象的考慮? – cdmckay 2011-02-05 01:25:19

回答

1

如果這只是爲了調試,或者如果你想要某種形式的基本序列化,請看XStream。下面是從他們的網站說起特別是自我參照的例子...

Cd bj = new Cd("basement_jaxx_singles"); 

List order = new ArrayList(); 
// adds the same cd twice (two references to the same object) 
order.add(bj); 
order.add(bj); 

// adds itself (cycle) 
order.add(order); 

XStream xstream = new XStream(); 
xstream.alias("cd", Cd.class); 
System.out.println(xstream.toXML(order)); 

,輸出爲...

<list> 
    <cd> 
    <id>maria rita</id> 
    </cd> 
    <cd> 
    <id>basement_jaxx_singles</id> 
    </cd> 
    <cd reference="../cd[2]"/> 
    <list reference=".."/> 
</list> 
+0

我試過這個,將會使用xstream,但它不支持私有字段:/ – Prospero 2011-02-05 03:32:08