序列化包含对象java的对象

我尝试序列化一个包含其他对象的对象,该对象本身是可序列化的。

有没有办法让它发挥作用? 当我序列化第一个对象时,指向另一个对象的指针似乎丢失了。

以下是有关持久对象的两条规则:

  • 规则#1:要持久化的对象必须实现Serializable接口或从其对象层次结构inheritance该实现
  • 规则#2:要持久化的对象必须将所有不可序列化的字段标记为瞬态

查看文章“发现Java Serialization API的秘密” 。 它包括源代码和序列化过程的良好解释。

源代码回答“如何序列化对象树?” 也可以在http://docs.oracle.com/javase/8/docs/technotes/guides/rmi/faq.html#tree上找到

要了解一些“引擎盖下”的详细信息,请查看这篇优秀文章: Java序列化算法揭示 。

“指针”确实丢失了。 反序列化后,构造新对象。

在提供代码之前 – 检查第二个对象是否未定义为transient – 这将停止java序列化。

Serializable对象的所有属性也应该被序列化,除非它们被定义为瞬态。

它应该工作得很好,只要一切都是可序列化的。 指针(我假设你的意思是参考)被“丢失”是什么意思?

你能提供一个简短但完整的程序来certificate这个问题吗? 不可否认,Java二进制序列化有时可能很繁琐,但这应该可以很好地开箱即用。

你可能会很高兴使用SOJO 。 它非常容易地序列化Java对象的整个层次结构。

我确实感觉一样,内部对象值也可以序列化,除非它被标记为瞬态。 如果内部对象类不可序列化,那么它将抛出编译时错误。

请告诉我们您是否解决了问题以及我的理解是否错误。

https://github.com/gadieichhorn/prototype-jpa

我创建了这个github项目,包括一些序列化到@Lob请检查出来,如果您有任何意见,请告诉我。

  • 行家
  • jpa – eclipse链接 – 德比
  • slf4j – logback
  • junit – hamcrest

反馈是受欢迎的。