问题标签 [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.
java - java.io.InvalidClassException:从字符串到对象的序列化失败java
我有一个名为 Doodle 的对象,我将它序列化为一个字符串,就可以了。当我尝试反序列化对象时出现问题,错误是:java.io.InvalidClassException: java.util.ArrayList; 本地类不兼容:stream classdesc serialVersionUID = 8664875232659988799,本地类serialVersionUID = 8683452581122892189
序列化和反序列化的方法如下:
我使用相同的方法(但使用不同的变量)来序列化另一种类型的对象,并且使用该方法可以很好地工作。我不明白哪里有问题!
java - POJO类中序列版本id的唯一性
还有一个愚蠢的问题。但是想问一下,因为它从过去 1 小时开始让我头晕目眩。
我们都知道 serialVersionUID 是唯一的。什么是独特性水平?它在项目或工作区或服务器中应该是唯一的吗?
如果同一工作区中的两个类具有相同的 serialVersionUID(复制粘贴),它会导致 IllegalClassCasteException 或任何其他异常吗?
如果每个项目/工作区都是唯一的,那么为什么 Eclipse 提供默认的 serialVersionUID (1L)?
java - serialVersionUID 异常
我目前正在编写一个项目,其中有一个可序列化的类 ClientRepository。该类不指定任何serialVersionUID。当我尝试运行我的程序时,出现以下异常:
所以我添加了一个默认的serialVersionUID(1L),但现在我得到了
如何将“stream classdesc serialVersionUID”更改为 1L,这样才不会冲突?
谢谢!
java - Java:由于“ClassNotFoundException”,序列化/反序列化失败
我有一个Pilot
类,以及该类的一个实例:bobThePilot
.
我序列化为bobThePilot
aString
并将其复制到我的硬盘上。然后我创建一个新项目并重新创建Pilot
类(与以前完全相同)....
然后我newBobThePilot
通过反序列化从磁盘获取的字符串在这个新项目中创建。但它失败了。每个人都说这是因为一个名为 的东西serialVersionUID
。
是否有可能做到这一点(在不同的类中序列化和反序列化(尽管完全相同的类)?如果是这样,怎么做?
谢谢。
德:
- 将 serialVersionUID 属性添加到我们的序列化类示例:
private static final long serialVersionUID = 1L;
implements serializable
与我们的序列化类相关的所有类
java - 如何为匿名类生成serialVersionUID?
这是我尝试过的:
我使用该选项构建了项目-Xlint:serial
,并收到了以下警告:
然后复制匿名类名作为参数serialver
:
我不打算序列化它,而且我读过不建议序列化匿名类的对象。
1L
将其保留为或根本没有定义是更好的做法serialVersionUID
吗?
java - 瞬态和易失性变量与串行版本 uid 之间是否存在任何关系?
实际上我想知道序列化的概念以及瞬态和局部变量与serialversionuid相关的方式以及序列化实际上是如何发生的?
java - HashMap 1.7 可以序列化,1.6 可以用吗?
我认为这会抛出一个错误,说明次要版本号;但它没有。并且工作正常。谁能指出,为什么这行得通?
我在 java 1.7 上运行的应用程序中创建了一个 hashMap,将其序列化并将其发送到使用 jdk 1.6 的应用程序。接收方应用程序能够毫无错误地获取内容。
java - getSerialVersionUID 使用什么内容来确定 UID?
所以,我有一个大型项目,在保存配置时会序列化很多东西,并且不得不重新设计其中的大部分内容。由于我已经为很多类定义了 serialVersionUID 字段,我想知道我需要为哪些文件重新计算 UID。
我在 SO 上找不到任何关于在计算 serialVersionUID 时使用类的哪些属性(通过 ObjectStreamClass.lookup(classname) )的帖子。我终于在规范中找到了定义它的位置。因此,为了保存这一小块知识,这更像是那些自我回答的问题之一。
如果这是不礼貌的(因为这是一个规范问题),请告诉我,我很乐意删除它或任何合适的东西。
那么,在使用 Java 内置的计算 serialVersionUID 的算法时,使用了类的哪些细节?
java - 为什么要考虑方法名称或为 serialversionuid 生成哈希
我在序列化时有一堂课
但是,在反序列化时,我有一个额外的方法(下面提到),它不会以任何方式影响对象状态,而序列化就是存储对象状态,那么为什么额外的方法对 serialversionuid 的哈希生成有贡献。在当前情况下,它将因 InvalidClassException 而失败。但是这个额外的方法并没有改变对象状态。
java - 以编程方式为 Java 文件添加 SerialVersion Id
我们有数百个通过 Hibernate 工具进行逆向工程的 Java 实体。Entity 类似乎实现了java.io.Serializable
接口,但没有serialVersionUID
.
我们的任务是添加serialVersionUID
这些文件(最坏的情况,我们必须手动完成)。我们还有其他方法可以做到吗?一个理想的解决方案是在逆向工程步骤本身中执行此操作,但也可以传入包名称并添加serialVersionUID
到实体类中。
我们正在使用休眠 3.0