问题标签 [serialversionuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
939 浏览

java - Java 向后兼容性:readObject() 如何读取具有不同 serialVersionUID 的相同类名对象?

这个套接字将继续接收一些旧对象和同名的新对象。但是,如果我直接使用 readObject,它会抛出致命异常。我们中的一些人会建议忽略旧对象或更改旧对象代码。我无法更改客户端代码。我需要处理 向后兼容性




在 readObject() 行,我得到了这个致命的异常:

java.io.InvalidClassException 本地类不兼容:流 classdesc serialVersionUID = 1,本地类 serialVersionUID = 2

我如何读取这两种 Apple 对象数据(Hashmap)?

谢谢你。

0 投票
1 回答
128 浏览

java - 为什么依赖 ObjectStreamClass.getSerialVersionUID 不安全?

java规范说:“强烈建议所有可序列化的类显式声明serialVersionUID值,因为默认的serialVersionUID计算对类细节高度敏感,可能因编译器实现而异”

请问有人可以深入研究吗?getSerialVersionUID() 方法是做反射的,反射无处不在,那么什么是编译器依赖呢?

0 投票
0 回答
698 浏览

java - 尝试忽略序列化对象的serialVersionUID(对象列表)时遇到“块数据意外结束”

我们已经序列化了一个对象列表(比如 ReportSetting)并作为字节数组字段保存到数据库中。但是我们没有在类中声明serialVersionUID之前和之后通过添加更多字段来更改类,我们显然得到了以下异常。

我们尝试使用以下代码重新定义ObjectInputStream的类描述符(此答案的信用),以避免反序列化对象时的 serialVersionUID 检查。

测试单元代码如下:

我们得到了以下异常:

ReportSetting类现在如下所示,isHistorical 字段及其 getter 和 setter 稍后将添加为serialVersionUID 5814220747992558303。

任何帮助表示赞赏

0 投票
2 回答
246 浏览

java - SerialVersion UID Java - SerialVersionUID 如何工作?

您好,我有一个关于SerialVersionUIDJava 的问题。如果我生成一个SerialVersionUIDfor class A,则 2 个实例A具有相同的SerialVersionabout 类和另一个唯一的 Serial 对象,不同的 aboutobject1object2? 或者怎么做?不明白,请回复我。谢谢。

0 投票
3 回答
7822 浏览

java - java中默认和生成的串行版本uid有什么区别?

我不知道在哪里使用默认的 serialVersionUID 或在 java 中生成的 serialVersionUID ?

0 投票
2 回答
254 浏览

java - Eclipse 中的serialVersionUID 生成是否使用serialver?

Eclipse IDE 允许生成随机serialVersionUID. 另一方面,JDK 中有一个工具serialver就是为此目的而设计的。

知道 Eclipse 是否真的在幕后调用 serialver 吗?

0 投票
0 回答
44 浏览

java - 是否可以向 Javac 指示多个目标目录?

我写了一个 Java 类 let A,它必须编译一次并保存在几个目录中(let Y 和 Z)。因此,编译后的文件在任何目录(Y 和 Z)中都将具有相同的SerialVersionUID(我需要它)。

我尝试使用,javac A.java -d Y -d Z但它不起作用。

顺便说一句,我不能进行第一次编译然后复制(即:) javac A.java -d Y; cp Y/A.class Z,因为SerialVersionUID会有所不同......

我该如何解决这个问题?

编辑:最终的解决方案是在 .java 文件中明确设置SerialVersionUID,但我想避免它。

0 投票
2 回答
524 浏览

android - serialVersionUID 添加到 JSON

我正在使用com.google.code.gson:gson:2.2.4库使用代码将对象转换为 JSON:

并且在 JSON 字符串中,“serialVersionUID”会自动添加Long值,即使它不在模型类中。我只想serialVersionUID从 JSON 中删除。

0 投票
1 回答
78 浏览

java - 非编辑类中的 InvalidClassException

我收到此错误:

由于InCacheTranslationDelegateImpl类最近没有被编辑,我怎么会得到这样的错误?

0 投票
1 回答
5143 浏览

java - serialversionUID 不匹配

在此处输入图像描述

我对 java 还很陌生,我有一个类ProductsSerializable. 我不知道我做了什么,但我的程序停止工作并给了我这个错误:

我四处搜索并找到了声明它的方法,但这对我现在没有帮助。我什至打开了一个新项目,只是从非工作项目中复制每个类中的文本并将其粘贴到新项目中,但我仍然遇到同样的错误。我在我的所有项目中都遇到了这个错误(他们使用同一个Serializable类)我需要知道我做了什么来做到这一点,这样它就不会再次发生,以及我能做些什么来解决它。我已经尝试过声明serialversionUID,但没有奏效。

产品类别