Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该将serialVersionUID设置为什么?_Java_Serialization - Fatal编程技术网

Java 我应该将serialVersionUID设置为什么?

Java 我应该将serialVersionUID设置为什么?,java,serialization,Java,Serialization,可能重复: 是否有与设置serialVersionUID相关的最佳实践或通用命名方案 我觉得大多数人都是从0开始,然后从那里开始递增。我个人开始使用日期(例如,09052011),因为我觉得它更具描述性。您通常应该将SerialVersionId作为类中的私有静态最终字段;您可以选择任何值。如果不指定,则会自动生成一个值(这种方法可能会导致问题,因为它依赖于编译器(对象结构)。还有一个工具(serialVer)它与jdk一起提供,可用于生成id。规范应该能够帮助您了解详细信息。您通常应该将s

可能重复:

是否有与设置
serialVersionUID
相关的最佳实践或通用命名方案


我觉得大多数人都是从
0
开始,然后从那里开始递增。我个人开始使用日期(例如,
09052011
),因为我觉得它更具描述性。

您通常应该将SerialVersionId作为类中的私有静态最终字段;您可以选择任何值。如果不指定,则会自动生成一个值(这种方法可能会导致问题,因为它依赖于编译器(对象结构)。还有一个工具(serialVer)它与jdk一起提供,可用于生成id。规范应该能够帮助您了解详细信息。

您通常应该将serialVersionUID作为类中的私有静态最终字段;您可以选择任何值。如果您不指定一个值,则会自动生成一个值(这种方法可能会导致问题,因为它是编译器)(对象结构)依赖。jdk附带的另一个工具(serialVer)可用于生成id。规范应该能够帮助您了解详细信息。

没有理由对serialVersionUID使用一个手动值。但是您不应该增加,您应该调整readObject()/writeObject()/writeReplace()/readResolve()/serializableFields为了保持二进制兼容性,在中断时不要考虑任何方案。

没有理由对serialVersionUID使用一个手动值,而不是另一个手动值。但是,决不应该增加,应该调整readObject()/writeObject()/writeReplace()/readResolve()/serializableFields以保持二进制兼容性,而不是在破坏它时考虑一个方案。

你用谷歌搜索过“java serialversionuid最佳实践”吗?任何看起来权威的东西吗?Josh Bloch说,从稀薄的空气中挑选一个数字是可以的,所以如果一个日期适合你,它可能很好。这可能会帮助你:你用谷歌搜索过吗“java serialversionuid最佳实践”?任何看起来权威的东西?Josh Bloch说,凭空挑选一个数字是可以的,所以如果某个日期适合你,它可能是可以的。这可能会帮助你:@EJP:请解释为什么“你可以选择任何值”当我已经声明了在选择价值时遵循的代码约定。这是唯一的一部分,答案是:其余的都是不相干的。这是你个人的意见,你有权得到;我不认为把上下文当作答案是无关的。(这个问题也确实问到了最佳实践)。@EJP:请解释为什么“你可以选择任何价值观”当我已经声明了在选择价值时要遵循的代码约定。OK,但这是唯一的答案:其余的都是不相干的。这是你个人的意见,你有权得到;我不认为把上下文作为一个无关的答案。(这个问题也确实需要最佳实践)。