为什么我不能在没有无参数构造函数的情况下序列化一个对象,即使它实现了serializable?

yrefmtwq  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(289)

我正在尝试用titan graph数据库序列化uuid,我相信我不能,因为根据serializable的定义,java.util.uuid无法提供无参数构造函数。
(见本章顶部)http://docs.oracle.com/javase/7/docs/api/java/io/serializable.html 为此)
既然java.util.uuid声称实现了可序列化,这里发生了什么?这仅仅是一个历史性的错误,不能消除向后兼容,还是有一个特定的技术原因,这种奇怪的(对我来说,恼人的)选择?
更新:根据答案,uuid实际上是可序列化的,我误读了no-arg构造函数规则,该规则很微妙,实际上不需要在同一个类中使用no-arg构造函数。我无法序列化的原因是titan(或其依赖项)添加了更严格的no-arg声明构造函数规则,而不是核心java。我不知道是谁强加了这个规则,java还是titan。

gajydyqb

gajydyqb1#

可序列化类不需要无参数构造函数。它最近的不可序列化基类没有。
你误读了说明书。

相关问题