java - 为什么即使没有无参数构造函数,我也无法序列化对象,即使它实现了 Serialized?

标签 java serialization uuid titan kryo

我正在尝试使用 Titan 图形数据库序列化 UUID,但我相信我不能,因为根据 Serialized 的定义,java.util.UUID 无法提供无参数构造函数。

(请参阅 http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html 顶部)

考虑到 java.util.UUID 声称实现了可序列化,这里发生了什么?这是否只是一个无法为了向后兼容性而删除的历史错误,或者这种奇怪的(对我来说,令人讨厌的)选择是否有特定的技术原因?

更新:根据答案,UUID实际上可序列化的,并且我误读了无参数构造函数规则,该规则很微妙,并且实际上不需要在同一个类中使用无参数构造函数。我无法序列化我的原因是 Titan (或其依赖项)添加了更严格的无参数 声明 构造函数规则 - 而不是核心 Java。我很困惑到底是谁在实现这个规则,Java 还是 Titan。

最佳答案

可序列化类不需要无参数构造函数。它最近的不可序列化基类确实如此。

您误读了规范。

关于java - 为什么即使没有无参数构造函数,我也无法序列化对象,即使它实现了 Serialized?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332034/

相关文章:

C++设计——网络数据包和序列化

java - 如何在 Ant javac 任务中包含默认包

java - rosjava将日志级别设置为WARN

java - Swing: Action 监听器的作用

json - 使用具有对象数组属性的 json 对象从 powershell 调用rest方法

c# - C#中涉及引用时的序列化与反序列化

java - RandomStringUtils.randomAlphanumeric(int count) 有多独特?

c# - 如何将 .NET Guid 读入 Java UUID

java - 访问远程应用程序服务器上的线程

mysql - uuid v4 vs v6(有序),哪个对 MySQL 更有效?