问题标签 [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 回答
1686 浏览

java - Java 序列化:如果 serialVersionUID 更新错误并已发布,则提供任何解决方案。

我们有一个非常古老的类,它没有 serialVersionUID。

4 年前,有人用随机值将 serialVersionUID 添加到此类。他应该使用serialver工具来查找值并在添加serialVersionUID时使用它,但事实并非如此。

有客户使用这个类的两个版本。

现在,如果我想反序列化老客户的对象,有什么办法。我无法更改当前的 serialVersionUID,因为新客户会受到影响。

0 投票
3 回答
302 浏览

java - 如何反序列化具有各种 serialVersionUID 的 Java 对象?

想象一下,我有一个Foo过去有serialVersionUIDs 1、3 和 17 的类,我需要能够将所有三个版本读入Foo实例。我怎么做?

我特别需要知道字节流中保存的是哪个版本,所以我可以做一些数据迁移。如何访问serialVersionUIDin readObject()?还是已经太晚了?

0 投票
2 回答
259 浏览

java - 建议通过接口声明常量

我一直在为我的一个小宠物项目使用可序列化接口有一段时间了,我经常注意到一个关于我应该如何定义 static final long 的警告serialVersionID

我一直在寻找一种方法让我自己的接口产生类似的警告(强制/建议在任何实现它的类中声明一个常量),但到目前为止还没有找到任何东西。该Seralizable界面只是一个标记界面,因此它实际上不包含任何内容,而我最接近回答我的问题的是在 dreamincode 上的这个线程

任何人都可以提供帮助,因为这听起来像是一个非常有用的功能?

0 投票
1 回答
2583 浏览

java - Java:可序列化的内部和匿名类是否应该具有 SerialVersionUID?

虽然我目前不打算序列化任何东西,但我给所有可序列化的外部类以及静态嵌套类 a SerialVersionUID,因为这是正确的方法。

但是,我在这里读到

出于几个原因,强烈建议不要对内部类(即不是静态成员类的嵌套类)(包括本地和匿名类)进行序列化。...

所以我的问题是:

我应该给内部类和匿名类一个SerialVersionUID,还是应该添加一个@SuppressWarnings("serial")

一种方法比另一种更合适吗?

在任何情况下,我都会对这些类进行临时引用,因为我不希望它们被序列化。

0 投票
2 回答
444 浏览

java - Java 错误在 JPanel 中声明 serialVersionUID

我收到了这个错误,这让我对这段脚本感到非常沮丧......

我正在尝试在 JTextArea 输出中声明 setEditable ......有什么想法吗?

编辑:错误是:

出现在声明 serialVersionUID 的分号上。

0 投票
5 回答
120 浏览

java - 为什么我的 serialVersionUID 后面需要大括号?

我在serialVersionUID 的行中有一个语法错误。为了解决这个错误,我必须在该行的末尾放置一个括号并在我的代码末尾关闭它......我的问题是为什么?在包含 Jframe 的文件中不需要这个......还有什么是 serialVersionUID?如果我的问题看起来很初级,我很抱歉,我是编程新手,Java 新手,这是我在 GUI 上的第 3 天。

0 投票
3 回答
2670 浏览

java - 负的serialVersionUID?

我遇到了一个扩展异常的异常处理程序类,如下所示:

作者使用了显式的序列化版本 UID,并在其他类似的异常处理程序类中忽略了相同的内容。根据我从另一篇SO 帖子中了解到的情况,如果应用程序未使用任何序列化和反序列化,我们可以忽略序列化 UID。奇怪的是,作者使用了负 UID。我很想知道这是否有效或推荐的做法。还有其他理由使用负的serialVersionUID吗?

0 投票
2 回答
128 浏览

java - 程序未执行 - 编译警告

我是一个新的java程序员。我正在尝试在 Eclipse 中执行此程序,但错误是


为什么我必须声明这条线?

0 投票
1 回答
1122 浏览

java - Java 序列化类保存到文件 - 我如何确保向后兼容性?

我编写了一个 Android 应用程序,用于生成“摄影服务”合同并将其作为文件保存到设备中以供以后打印。该类几乎由整数、双精度数和字符串(包括 base64_encoded 签名)组成。

该类实现可序列化。但是,我担心我更新应用程序,忘记不编辑类并编辑它,重新加载到我的设备上并将 X 数量的合同保存到一个文件中,然后无法检索它们。

早些时候我浏览并找到了serialVersionUID。在一篇文章中,我只是通过实现这个简单的 long 值来阅读,如果我更新类,它仍然可以被读取。这个对吗?我阅读了 Serializable 的 java 文档,并不能对实现 serialVersionUID 的结果做出太多决定。

任何人都可以帮我解释一下吗?只是一个简单的是的,这将起作用,或者不,这不起作用就足够了,任何帮助我学习的链接都会更好!

0 投票
5 回答
12028 浏览

java - 如何在 Java 中以编程方式生成 serialVersionUID?

我正在开发一个生成Java文件的项目。我希望能够像serialVersionUID使用serialver工具一样随意添加。

当我生成Java代码时,有没有办法做到这一点,或者我是否需要让工具的用户手动提供 UID?需要明确的是,我不希望通过 Eclipse 或serialver工具自动执行此操作,而是通过Java本身执行此操作。