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

java - 我在 Eclipse 的课堂上遇到错误

那是我写的代码,每当我输入extends GraphicsProgramor时ConsoleProgram,它都会告诉我

此外,当我尝试运行带有此警告的程序时,它只显示一个空白程序。

任何人都可以帮助我解决这些问题吗?

0 投票
4 回答
12574 浏览

java - 关于Eclipse中生成的serialVersionUID

有没有办法在 Eclipse 中串行生成 serialVersionUID?串行我的意思是,如果一个可序列化类的serialVersionUID = 1L,那么当我生成另一个类的serialVersionUID 时,这将是serialVersionUID = 2L。

如果我手动指定 1L、2L、3L 等,这会产生任何问题吗?

Eclipse 提供了一个选项来选择“添加生成的序列版本 ID”,这个选项可以安全选择吗?

0 投票
2 回答
12384 浏览

java - eclipse中的serialVersionUID字段警告

我刚刚开始使用 AWT 并在其中制作了一个简单的程序,它工作正常,但它在 eclipse 中显示一条我不明白的警告消息:

可序列化类 TestGUI 未声明 long 类型的静态最终 serialVersionUID 字段

我知道警告消息与 AWT 无关,也没有必要发布我的整个代码,但是当我尝试制作代码的 SSCCE 时,警告也消失了。由于我不知道为什么会生成此警告,因此我不知道要在我的 SSCCE 中保留哪个部分。因此整个代码!

我的代码是:

提前谢谢!

0 投票
1 回答
339 浏览

java - 我在哪里更改 Eclipse 中的设置,以便它为 Serializable 类生成 serialVersionUID?

我希望 Eclipse 为serialVersionUID实现Serializable.

但是,当我创建一个实现Serializable. 此外,它没有给出关于添加生成的serialVersionUID. 在哪里更改所需的设置?

0 投票
4 回答
2330 浏览

java - 为什么存在 serialVersionUID 字段?

它让我对Serializable界面的启动感到困惑,为什么我必须将此字段合并到我的所有课程中。我知道这个接口需要一个唯一的标识符来标记这个类,但是为什么他们不能在运行时生成它。例如,他们可以使用完全限定类名的 MD5 散列或用于处理罕见情况下的重复项的类似方法来生成它(我敢肯定,当被要求生成 id 时,eclipse 会做什么)。

那么我要问的是(不,这篇文章不仅仅是对标准库的咆哮)框架到底是如何使用序列化字段的?

我想知道的原因是因为我将尝试创建一个 Aspect(用 AspectJ 或其他语言),它将使用 MD5 哈希添加 serialVersionUID 字段,并且能够以 API 可接受的方式处理冲突。

如果我能让它工作,我会发布结果。

0 投票
0 回答
485 浏览

java - java流中的可序列化或串行版本

为什么我会收到此错误?虽然我已经设置了串行版本,但我无法完成我的工作。实际上我正在尝试从 objectoutputstream 读取。我需要来自对象输出流的 imageicon 数据,并且在那一行出现错误。我该怎么办?

我收到错误的行是:

  1. ImageIcon imageIcon = (ImageIcon) cObjectInputStream.readObject();
  2. java.io.InvalidClassException: javax.swing.ImageIcon; 本地类不兼容:流 classdesc serialVersionUID = -962022720109015502,本地类 serialVersionUID = 532615968316031794 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) at java.io .ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 在 java.io.ObjectInputStream.readObject( ObjectInputStream.java:351) 在 remoteserver.ClientScreenReciever.run(ClientScreenReciever.java:34)
0 投票
1 回答
2798 浏览

java - 如何摆脱 InvalidClassException SerialVersionUID?

我在数据库中保存了一个 java 对象,几天后我更改了我的 jre 版本。现在,当我尝试读取同一个对象时,出现以下异常:

我怎样才能摆脱这个,我怎样才能得到保存的对象?

请帮我。

0 投票
1 回答
1754 浏览

java - Java:为什么我的对象实例有两个 serialVersionUID?

我正在使用 Glassfish 3.1.2.2、eclipse-link 作为 JPA 提供程序和 Java JDK-6u31。我的应用程序是 3 层的,有一个独立的 Swing 客户端,在客户端机器上运行在自己的 JVM 上。通过 JNDI 查找和 @Remote 接口与 EJB 通信。

我有以下对象继承结构:

我的超类“文档”:

...和一个子类“发票”:

现在我在调用我的 ejb 外观以保留发票对象时遇到此异常(调用 persist()、flush()、refresh() 并将对象返回给客户端以便为客户端提供自动生成的 ID):

我已经通过互联网进行了梳理,发现了指向 serialVersionUID 问题的提示,因为 CORBA 编组在此示例中显然失败了。

然后我在 Netbeans IDE 中打开了我的调试器,并在对象被发送到服务器端 ejb bean 之前自省了它的状态。

我意识到在调试器窗口中打开静态字段节点时存在重复的serialVersionUID(与下图比较):

在此处输入图像描述

- 有人知道如何解决这个问题吗?

我的项目中有其他类似这样的继承结构,它们的构造非常相似(没有@Lob),我在那里没有这个问题...... @Lob 字段可能会以某种方式引发这种行为吗?

任何帮助都非常感谢并提前感谢您!

编辑:这是完整的堆栈跟踪:

0 投票
4 回答
2511 浏览

java - java中serialVersionUID是如何序列化的?

类成员(静态)不能被序列化。原因很明显——它们不被类的对象持有。由于它们与类(而不是该类的对象)相关联,因此它们与对象分开存储。

serialVersionUID被声明为实现java.io.Serializable接口的类中的静态字段,如下所示。

它用作Serializable类中的版本控制。如果没有明确声明,JVM 将根据Serializable类的各个方面自动完成,如Java(TM) 对象序列化规范所述。

如果它没有在实现Serializable接口的类中显式声明,则可能会发出警告。

可序列化的类SomeClass没有声明static final serialVersionUID类型的字段long

即使它是序列化的static,它是序列化的还是序列化的例外?

0 投票
2 回答
348 浏览

scala - 序列化:InvalidClassException scala

为什么我会收到此错误?

使用智能