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

java - Applet (does not declare a static final serialVersionUID field of type long)

I just began learning Java programming. I made this one program given in the first chapter on Applets (The applet class) and it gave me this error. I tried to find a solution but couldn't.

According to the book this program should display a window but I get this error when I extend the Applet class :

"Multiple markers at this line - The serializable class AppletSkel does not declare a static final serialVersionUID field of type long - The public type AppletSkel must be defined in its own file "

Heres my code;

//ERROR

0 投票
2 回答
513 浏览

java - eclipse使用什么算法在Serializable类中生成verison id?

假设这是我的课:

eclipse使用什么算法来生成serialVersionUID = -5186261241138469827L

0 投票
3 回答
562 浏览

java - 为什么反序列化时不使用用户定义的serialVersionUID?

我首先序列化了 Employee2 对象。然后在 Employee2 下又添加了一个字段,即年龄。现在反序列化 Employee2 并得到以下错误

java.io.InvalidClassException:Test.Employee2;本地类不兼容:流classdesc serialVersionUID = -342194960183674221,本地类serialVersionUID = -8890407383319808316

这是预期的,因为类的结构已被修改(因此 serialVersionUID 被修改,这是在序列化和反序列化时内部计算的)

现在,如果我在 Employee2 下声明以下字段并重复该场景,根据我的理解,我不应该得到 InvalidClassException,因为 serialVersionUID 在序列化和反序列化时是相同的,但我仍然得到 InvalidClassException 异常。为什么?如果序列化过程仍然使用在运行时计算的serialVersionUID,而不是在类下手动定义,那么声明它有什么用?

静态最终 Long serialVersionUID = 1L;

0 投票
3 回答
4177 浏览

java - Spring Batch 2.2.3 异常 - 访问字段“serialVersionUID”不应该是非法的

我有一个 Spring Batch 作业开始抛出这个奇怪的异常。

我希望我有比这个堆栈跟踪更多的信息,我可能会,但我只是不知道要提供什么。

环顾四周,我只发现另一个人有这个特殊错误,但截至 2013 年 8 月没有回复。spring.io 论坛

有人有什么建议吗?谢谢/w

0 投票
1 回答
4363 浏览

java - 可序列化类 Employee 没有声明 long 类型的静态最终 serialVersionUID 字段

在我的 Eclipse 中,我尝试了关于序列化的示例,但遇到了以下警告

在此处输入图像描述

我知道什么是 serialVersionUID 以及它在序列化中的意义。我对此警告有以下疑问

  1. IDE如何分配默认值。它是在 IDE 中硬编码的吗?
  2. 当它说生成ID时,使用哪些参数来生成新ID?
  3. 不确定第三个选项是什么。说了一些关于抑制注释的事情。这是否意味着根本没有分配 id。在那种情况下,序列化中使用什么?
0 投票
1 回答
1003 浏览

scala - 如何修复 scala-library.jar 中的错误

我正在构建一个游戏!使用 Play 的框架应用程序!2.2.1,sbt 0.13.0,而我本地的 scala 版本是 2.10.3。

在反序列化我从同事那里继承的用于该项目的特定文件时,我遇到了 serialVersionUID 问题(我不知道是谁创建了这个序列化文件(或何时))。

在 Play! 中构建时我的错误消息:

Caused by: java.io.InvalidClassException: scala.collection.mutable.WrappedArray$ofRef; local class incompatible: stream classdesc serialVersionUID = 8184381945838716286, local class serialVersionUID = -8707880168089396949

经过大量搜索,我找到了应该修复错误 SI-5046 的补丁:

https://issues.scala-lang.org/browse/SI-5046

我从 github 下载了分支 2.10.x 的 scala 源代码,并在此处将补丁应用于 WrappedArray.scala:scala/src/library/scala/collection/mutable/WrappedArray.scala

我该如何处理这个修改后的源代码,以便我可以在我的 Play 中使用它!应用?

*编辑#1:

我关注了@Alexey Romanov 的链接

编译 Play 时,我仍然收到有关 WrappedArray$ofRef 的错误消息,但现在它是不同的错误消息。这是我所做的:

我使用 ant 重建了 scala 发行版,使用:

ant build

ant partialdist

然后在玩!通过将以下内容添加到我的 Build.scala 文件中,我指定了用于 SBT 和插件的 scala 版本:

scalaVersion := "2.10.3" autoScalaLibrary := false scalaHome := Some(file("/path_to_my_rebuilt_scala_distribution"))

现在我的错误信息是:

Caused by: java.io.InvalidClassException: scala.collection.mutable.WrappedArray$ofRef; incompatible types for field bitmap$0

编辑#2:

我正在向下移动 Scala 版本,当我到达 2.9.2 时,通过应用补丁修复了有关 WrappedArray$ofRef 的错误。现在我收到另一个类的另一个序列化错误:

java.io.InvalidClassException: scala.Symbol; local class incompatible: stream classdesc serialVersionUID = -3681772905693662441, local class serialVersionUID = 7747205442425187939

我将向下移动到 Scala 2.9.1,看看是否可以使用该版本访问文件的内容。

*编辑#3:

在 scala 版本 2.9.1-1 中,我得到一个不同的序列化错误: java.io.InvalidClassException: scala.Tuple2; local class incompatible: stream classdesc serialVersionUID = 3990034604647285925, local class serialVersionUID = 5867822941721784448

不知道接下来要尝试什么.. 继续降低 scala 版本,还是有其他建议?

0 投票
2 回答
2951 浏览

java - 去掉 Eclipse 生成的 serialVersionUID 上面的注释

这已经成为我的一个小毛病。我写了一个类,并实现Serializible. 然后 eclipse 警告我我没有serialVersionUID,所以我选择“添加生成的serialVersionUID ”或“添加默认的serialVersionUID ”,我最终得到这样的结果:

大多数时候我不想添加评论,所以我不得不去删除评论。我宁愿默认没有评论,但我已经查看了首选项中的代码模板,还没有弄清楚如何更改它。我只是希望它看起来像这样:

0 投票
1 回答
91 浏览

java - 为什么 SAXException 是可序列化的?

我有以下情况:

Eclipse 告诉我 SAXException 是可序列化的,我应该将serialVersionUID添加到 CustomException 或禁止警告。

问题:

  1. 为什么这样的异常实现可序列化?
  2. CustomException 为空。我应该添加一个 serialVersionUID 还是禁止显示警告?


相关问题(不太重要):为什么 Eclipse 总是告诉我缺少 serialVersionUID,即使我添加了一个?

0 投票
1 回答
916 浏览

jsp - JSP useBean - 在类型 mybeans.FrageAntwortListeBean 上找不到属性

我正在为此苦苦挣扎,但我无法弄清楚为什么会发生此错误。

我有一个豆子:

所以现在我想在 JSP 中使用这个 bean:

现在它正在触发此错误:javax.el.PropertyNotFoundException: Property 'questions' not found on type mybeans.FrageAntwortListeBean

我完全不知道为什么会发生这种情况,因为我以前从未遇到过这个问题......我做错了什么?我简化了一个字符串属性的例子,通常它看起来更复杂,但即使结构简单,我也会得到这个错误!我究竟做错了什么?

即使我使用 scriptlet,eclipse 当然也会建议我使用 getQuestions() 函数,但是在运行 JSP 时它会显示类似的错误。

如果我通过页面指令导入它并使用以下它正在工作。但是,scriptlet 很丑!

我感谢所有帮助!:) 使用 apache tomcat 7,重新部署,清理它,编译所有新东西。使用了新安装。没有机会!

0 投票
2 回答
1283 浏览

java - serialVersionUID 更改后如何在 java 中加载 libsvm 模型

我已经在 weka 上训练了 libsvm 模型,然后我保存了模型。现在我想在java中使用这个模型。

我收到这个错误

“java.io.InvalidClassException:libsvm.svm_model;本地类不兼容:流 classdesc serialVersionUID = -8642637231196646922,本地类 serialVersionUID = 2709444323471798245”

当我运行上面的代码时。我想知道如何加载和使用模型。