gpt4 book ai didi

java - 我是否需要将 serialVersionUID 放在可序列化类的祖先上?

转载 作者:搜寻专家 更新时间:2023-11-01 03:12:51 25 4
gpt4 key购买 nike

我是否需要将 serialVersionUID 放在 Serializable 类的祖先上?或者只是在 Serializable 类本身上?

最佳答案

您根本不需要输入 serialVersionUID。

Java 会根据字段、方法等自动为您的类确定一个合适的序列号。

拥有 serialVersionUID 的唯一合适时机是当您将对象存储到文件中并需要稍后加载它们时,即使在您更改了代码之后也是如此。

或者,如果您要在使用不同版本库的组件之间通过线路传输数据。

人们90%的时间需要序列化,它是实时的,保证双方库版本匹配。在这些情况下,您不需要设置 serialVersionUID,如果您有两个不兼容的库版本但您没有更改 sID,它实际上会导致问题。您将开始收到奇怪的错误,因为 Java 认为它们是串行兼容的,而实际上它们不是。

同时看看这些问题:

Is there a reason to use a real serialVersionUID?

Why generate long serialVersionUID instead of a simple 1L?

What is a serialVersionUID and why should I use it?

编辑添加:

至于原来的问题,不,你不需要担心你的祖先。只有 serialVersionUID 会告诉 Java 它是否兼容。

但是,如果祖先改变了,而你的 serialVersionUID 没有改变,它可能不兼容,即使你说是。根本不应该设置它的另一个原因。

关于java - 我是否需要将 serialVersionUID 放在可序列化类的祖先上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com