【发布时间】:2012-08-25 06:14:13
【问题描述】:
哪个工具可以用来追踪序列化过程,哪些字段被序列化的顺序?
我有两个可选的类层次结构。字段是相同的,但在一种情况下,对象直接声明它们,在另一种情况下,它是在基类中完成的。然后,该字段未序列化。我想知道为什么。扩展的序列化调试信息什么都不做。
PS!没有序列化异常。一切都很顺利。我只想知道为什么字段在一种情况下被序列化,而在另一种情况下却没有。
【问题讨论】:
-
基类是否也可序列化?如果不是,它的状态将不会被保留。您可以让子类处理序列化父状态,但它涉及更多一点。请参阅可序列化的文档:docs.oracle.com/javase/1.4.2/docs/api/java/io/Serializable.html
-
哎呀。链接到旧文档。还是基本一样:docs.oracle.com/javase/7/docs/api/index.html
-
你认为我对你隐藏了 NotSerializableException 吗?
-
您可以序列化其超类未实现 Serializable 的对象,而不会导致 NotSerializableException。无论如何,我无法重现您看到的那种错误,所以除非您想发布您的代码,否则我认为我们无能为力。
-
这里的实际问题是什么?你真的在寻找一个工具,还是只是一个解释?你真正需要的只是解释。您关于“隐藏”异常的评论无关紧要,但它暴露了一些混乱。不可序列化的基类根本不会被序列化:不会引发异常。
标签: java debugging serialization