问题标签 [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 投票
1 回答
1136 浏览

java - 在这里使用 serialVersionUID 的目的是什么?

可能重复:
我为什么要关心serialVersionUID?

我正在检查 Struts2 验证文档。即使在这里它也被定义:

使用 serialVersionUID 的目的是什么,如何使用它(使用随机数?)以及在该文档中使用它的目的是什么?

0 投票
1 回答
3106 浏览

serialization - 无法理解我的 java.io.InvalidClassException:javax.swing.JComponent

我正在使用序列化与我的服务器通信。这样我的小程序检索JTree在服务器中创建的。在 Eclipse 和 appletViewer 中,我的小程序运行良好,但是当我尝试从服务器启动我的小程序时,我的控制台上出现此错误

java.io.InvalidClassException: javax.swing.JComponent; 本地类不兼容:stream classdesc serialVersionUID = 5858390075012080263,本地类serialVersionUID = -1030230214076481435

我试图为我的项目的每个类获取serialVersionUID,serialver但它们都没有 serialVersionUID = 5858390075012080263

当我尝试反序列化我的对象时发生错误。除此之外,错误说

java.io.InvalidClassException: javax.swing.JComponent.

如何确定JComponent导致此错误的原因?是我的JTree吗?如何设置 serialVersionUID?通过创建一个扩展此 JComponent 的类并设置 serialVersionUID?

0 投票
1 回答
4172 浏览

scala - scala类序列化,无法修复SerialVersionUID

我目前正在测试远程参与者在 Android 和 Windows 之间进行通信。Actors 远程发送不同的类,我在其中设置了 serialVersionUID。

这是我的序列化类的代码:

问题是远程演员调试说不兼容的类有问题:

为什么我的 SerialVersionUID 对编译器无关紧要?

如何修复serialVersionUID?或者也许还有另一个问题?

谢谢

0 投票
3 回答
36725 浏览

java - java中的serialVersionUID是什么,通常在异常类中?

可能重复:
我为什么要关心serialVersionUID?

我正在浏览一些异常处理代码,我看到了一些名为 serialVersionUID 的东西。这个uid是干什么用的??是只限例外还是全班都可以用???这个id有什么好处???

0 投票
4 回答
317 浏览

java - 在这种情况下,抑制警告不是比添加 serialVersionUID 更好的选择吗?

Web 应用程序中的一个常见场景:

  • 应用程序有很多类需要存储在 Session 中并且是可序列化的
  • 开发人员收到一堆关于“Serializable 类未实现 serialVersionUID”的警告
  • 开发者耸耸肩,点击 IDE 的“add serialversionUID”,问题就解决了吗?

我原则上不喜欢自动添加serialVersionUID,因为该解决方案本质上意味着

  • 最重要的是开发人员说“我知道我的更改什么时候会破坏序列化,什么时候不会,并且想要控制它而不是 JVM”,而实际上他不知道这些事情并且不想控制它们
  • 添加 serialVersionUID = 6266256561409620894L 既混乱又丑陋(好吧,你可以使用 1L)

我了解在类兼容性存在问题的应用程序中添加 serialVersionUID,开发人员会积极考虑并理解相关问题。

在典型的 Web 应用程序中,类的序列化何时中断并不重要。部署新版本时,可能会破坏一些无关的序列化会话,但这通常不是问题(很少有应用程序实际上正确处理序列化会话的版本兼容性)。

底线:建议“始终在源文件中明确定义 serialVersionUID”不是很简单吗?

0 投票
2 回答
1369 浏览

java - 从 Java 5 开始不再需要 serialVersionUID?

我最近读到一条评论说,从 Java 5 开始,不再需要使用 serialVersionUID 来使同一类的不同版本兼容序列化/反序列化。这个对吗?也许它与协变返回类型混淆了。所以想和大家一起看看。

0 投票
2 回答
970 浏览

java - 为什么 Java 编译器会创建一个 serialVersionUID 合成字段?

作为调试应用程序的一部分,我注意到它Field.getDeclaredFields()返回了一些合成字段,包括serialVersionUID扩展接口的类中的字段,尽管没有扩展Serializable

为什么编译器会添加这样的字段?

更新

实际上,还$VRc创建了一个合成领域。

0 投票
3 回答
25020 浏览

java - 为什么我的异常类需要序列化?

当您使用 Exception 类扩展一个类(用于创建新异常)时,您会收到一个警告,提示您有一个serialVersionUID. 我知道这serialVersionUID在序列化和反序列化时起着重要作用,但是当我的异常需要序列化时呢?谁能给我一个实际案例,我希望我的自定义异常类具有序列化和反序列化?

0 投票
2 回答
1397 浏览

java - 为什么 Hibernate 不生成带有 serialVersionUID 列的 DDL?

hbm2ddl当我使用 Maven 插件添加目标时,我得到了这个 DDL(postgres 目标)hibernate3-maven-plugin

我定义了所有显示的列。

我在网上看到的所有使用示例:

从来没有@Column注释。我的 DDL 没有它的列。别人的吗?

那么Java中的反序列化代码是如何知道一个类的哪个版本被序列化和存储的,而不是它被反序列化的那个版本呢?

0 投票
1 回答
2371 浏览

java - Java Externalizable serialVersionUID

如果我实现 Externalizable,是否需要在该类中指定 serialVersionUID 以实现版本兼容性?

换句话说,Java 在反序列化 Externalizable 对象时会检查 serialVersionUID 吗?