有 3 种方式定义 serialVersionUID :
1. private static final long serialVersionUID = 1L; (Default)
2. private static final long serialVersionUID = -8940196742313994740L; (Generated)
3. Don't define serialVersionUID and let the JVM define it at runtime. @Lance Java
但是我不明白第一种方式!
我已经看到有人为源代码中的所有 java 类定义了“serialVersionUID=1L”。
什么意思?有用吗?
如果所有的类都有相同的serialVersionUID 1L,没有问题吗?
最佳答案
What is the meaning? Is that useful?
是的。 serialVersionUID 的要点是让程序员控制类的哪些版本在序列化方面被认为是不兼容的。只要 serialVersionUID 保持不变,序列化机制就会尽最大努力翻译序列化实例,这可能不是您想要的。如果您进行语义更改导致旧版本不兼容,则可以更改 serialVersionUID 以使反序列化旧实例失败。
If all classes have the same serialVersionUID 1L, is there no problem?
否 - serialVersionUID 每个类。
关于java - 1L serialVersionUID 是什么意思?我什么时候可以使用这个默认值 1L?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21850907/