繁体   English   中英

序列化包含对象java的对象

[英]Serialize objects containing objects java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

欢迎反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM