我正在尝试使用 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/