class A implements Serializable{
private static final long serialVersionUID = 5L;
...
}
和
class B implements Serializable{
private static final long serialVersionUID = 6L;
...
}
然后有必要为这两个类提供唯一的serialVersionUID
。
那么我可以为这两个课程分配serialVersionUID = 5L
吗?
我阅读了以下链接
答案 0 :(得分:14)
是的,你可以。不同类的串行版本是独立的,不会相互干扰。
PS
Eclipse甚至建议您将serialVersionID
设置为默认值1L
。
答案 1 :(得分:6)
serialVersionUID
才能记住该类的版本。序列化和反序列化时应该相同。提供此值而不是JVM分配一个(通常是哈希)是一种很好的编程习惯。两个类没有必要具有唯一值。
答案 2 :(得分:1)
serialVersionUID
可以是任何东西。
但是最佳做法是从最低的数字开始(例如0L
),并在每次更改影响序列化的类时进行更新,例如添加/更新/删除字段,在这种情况下,您应该将版本号从0L
增加到1L
,依此类推。
答案 3 :(得分:0)
SerialVersionUUID是编译器用来序列化/反序列化对象的标识符。该ID是该课程的私人成员。
为每个可序列化的对象创建新的uuid可以很好地控制序列化/反序列化过程,但是在不同的类之间不必唯一。
答案 4 :(得分:-1)
是的,两个不同的类可能有相同的serialVersionUID变量。但是更喜欢为每个类使用唯一的一个。也可以使用8到10位长的一个而不是1作为值。