我正在尝试使用Titan图数据库序列化UUID,我相信我不能,因为根据Serializable的定义,java.util.UUID无法提供无参数构造函数。
(请参阅http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html的顶部)
鉴于java.util.UUID声称实现了Serializable,这里发生了什么?这只是一个历史性的错误,不能为了向后兼容性而被删除,或者是否有一个特定的技术原因导致这种奇怪的(对我来说,烦人的)选择?
更新:根据答案,UUID实际上是 Serializable,我误读了no-arg构造函数规则,这个规则很微妙,实际上并不需要在同一个类中使用no-arg构造函数。我无法序列化我的原因是 Titan (或其依赖项)添加了更严格的no-arg 声明的构造函数规则 - 而不是核心Java。我对谁强加这个规则,Java或Titan感到困惑。
答案 0 :(得分:2)
Serializable类不需要no-args构造函数。它最近的非可序列化基类可以。
您误解了规范。