serialVersionUID应该是不同类的唯一吗?

Dar*_*tel 17 java serialization

class A implements Serializable{
    private static final long serialVersionUID = 5L;
    ...
}
Run Code Online (Sandbox Code Playgroud)

class B implements Serializable{
    private static final long serialVersionUID = 6L;
    ...
}
Run Code Online (Sandbox Code Playgroud)

那么有必要给serialVersionUID这两个类赋予独特性.

那么我可以分配serialVersionUID = 5L两个班级吗?

我读了以下链接

为什么要生成long serialVersionUID而不是简单的1L?

什么是serialVersionUID,我为什么要使用它?

Phi*_*nov 16

是的你可以.不同类的串行版本是独立的,不会相互干扰.

PS
Eclipse甚至建议您serialVersionID按默认值设置1L.


Ani*_*kur 7

serialVersionUID需要记住类的版本.序列化和反序列化时应该相同.提供此值而不是JVM分配一个(通常是哈希)是一种很好的编程习惯.两个类没有必要具有唯一值.

  • 这意味着两个不同的类可以具有相同的**serialVersionUID**值. (2认同)