我需要转储Java对象的所有属性。我找到了一些这样做的函数,但它们都没有处理自引用和我发现的所有函数螺旋形到无限递归。
//我将在Android上运行此功能,但这并不重要。
答案 0 :(得分: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>