14
A
回答
14
是的,默认的Java序列化适用于循环引用。在序列化对象C时,该字段将包含对已经序列化的对象A的反向引用,而不是再次序列化它。
+2
有没有关于如何工作的任何文档......我想在我自己的序列化实现之一中处理这个问题。 – 2013-09-25 18:16:03
3
0
如果将对象序列化为XML,则可以实际查看引用。子对象只被序列化一次。对已经被序列化的子对象的任何引用(在序列化结构中的任何地方)将简单地指向该文件中的该对象。
但是,序列化循环引用可能会变得有点混乱,所以如果可以的话,您可能想要避免它们。
1
是的。
我做了这个非常非常简单的测试,至少它完成了序列化。我认为这是正确的,但你可以检查一些额外的行。
import java.io.*;
class A implements Serializable { B b; }
class B implements Serializable { C c; }
class C implements Serializable { A a; }
class Test {
public static void main(String [] args) throws IOException {
A a = new A();
a.b = new B();
a.b.c = new C();
a.b.c.a = a;
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(a);
System.out.println("It works");
}
}
相关问题
- 1. 是否可以使用循环引用来执行序列化?
- 2. WCF无法序列化循环引用
- 3. WCF - 由于循环引用导致的序列化异常
- 4. smtp不适用于循环
- 5. 适用于JavaScript循环吗?
- 6. 使用XML序列化时的循环引用?
- 7. 如何“真的”用Newtonsoft.Json序列化循环引用对象?
- 8. 使用XML序列化的循环引用
- 9. 使用循环引用序列化对象图的方法
- 10. 是否有引用JSPON序列化的Java支持?
- 11. 循环引用是否有必要?
- 12. Elm是否允许循环引用?
- 13. 多列索引是否也适用于单列选择?
- 14. 固定WCF循环引用序列
- 15. 是否有适用于嵌入式环境的Java 5 VM?
- 16. GWT RPC序列化和循环引用 - 鸡和蛋问题
- 17. 将EF模型序列化为Json时的循环引用
- 18. 杰克逊序列化循环引用堆栈溢出错误
- 19. WCF循环引用序列化和堆栈溢出错误
- 20. 序列化LINQ to SQL类时的循环引用异常
- 21. 循环引用而序列化类型的对象“的System.Reflection
- 22. json.net;序列化实体框架对象(循环引用错误)
- 23. 如何避免循环引用,而序列化实体框架
- 24. 使用循环对图进行序列化和反序列化
- 25. KeyValuePair不适用于JsonFx序列化
- 26. Message.GetBody();序列化循环
- 27. 适用于套接字流的C++/Java序列化库?
- 28. 我是如何解决Json序列化循环引用错误的?
- 29. Java数字序列循环
- 30. 嵌套适用于lapply循环列矩阵的列
我明白评论#9的方式,他是在谈论手工执行串行化,不是正式实施缺陷的难度。 – meriton 2009-11-24 19:59:10
是的,我重新读了一下,我认为我同意它意味着手动。 – Brandon 2009-11-24 20:02:54
当您尝试**时会发生什么? – 2009-11-24 19:52:33