问题标签 [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 - 我在 Eclipse 的课堂上遇到错误
那是我写的代码,每当我输入extends GraphicsProgram
or时ConsoleProgram
,它都会告诉我
此外,当我尝试运行带有此警告的程序时,它只显示一个空白程序。
任何人都可以帮助我解决这些问题吗?
java - 关于Eclipse中生成的serialVersionUID
有没有办法在 Eclipse 中串行生成 serialVersionUID?串行我的意思是,如果一个可序列化类的serialVersionUID = 1L,那么当我生成另一个类的serialVersionUID 时,这将是serialVersionUID = 2L。
如果我手动指定 1L、2L、3L 等,这会产生任何问题吗?
Eclipse 提供了一个选项来选择“添加生成的序列版本 ID”,这个选项可以安全选择吗?
java - eclipse中的serialVersionUID字段警告
我刚刚开始使用 AWT 并在其中制作了一个简单的程序,它工作正常,但它在 eclipse 中显示一条我不明白的警告消息:
可序列化类 TestGUI 未声明 long 类型的静态最终 serialVersionUID 字段
我知道警告消息与 AWT 无关,也没有必要发布我的整个代码,但是当我尝试制作代码的 SSCCE 时,警告也消失了。由于我不知道为什么会生成此警告,因此我不知道要在我的 SSCCE 中保留哪个部分。因此整个代码!
我的代码是:
提前谢谢!
java - 我在哪里更改 Eclipse 中的设置,以便它为 Serializable 类生成 serialVersionUID?
我希望 Eclipse 为serialVersionUID
实现Serializable
.
但是,当我创建一个实现Serializable
. 此外,它没有给出关于添加生成的serialVersionUID
. 在哪里更改所需的设置?
java - 为什么存在 serialVersionUID 字段?
它让我对Serializable
界面的启动感到困惑,为什么我必须将此字段合并到我的所有课程中。我知道这个接口需要一个唯一的标识符来标记这个类,但是为什么他们不能在运行时生成它。例如,他们可以使用完全限定类名的 MD5 散列或用于处理罕见情况下的重复项的类似方法来生成它(我敢肯定,当被要求生成 id 时,eclipse 会做什么)。
那么我要问的是(不,这篇文章不仅仅是对标准库的咆哮)框架到底是如何使用序列化字段的?
我想知道的原因是因为我将尝试创建一个 Aspect(用 AspectJ 或其他语言),它将使用 MD5 哈希添加 serialVersionUID 字段,并且能够以 API 可接受的方式处理冲突。
如果我能让它工作,我会发布结果。
java - java流中的可序列化或串行版本
为什么我会收到此错误?虽然我已经设置了串行版本,但我无法完成我的工作。实际上我正在尝试从 objectoutputstream 读取。我需要来自对象输出流的 imageicon 数据,并且在那一行出现错误。我该怎么办?
我收到错误的行是:
- ImageIcon imageIcon = (ImageIcon) cObjectInputStream.readObject();
- 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)
java - 如何摆脱 InvalidClassException SerialVersionUID?
我在数据库中保存了一个 java 对象,几天后我更改了我的 jre 版本。现在,当我尝试读取同一个对象时,出现以下异常:
我怎样才能摆脱这个,我怎样才能得到保存的对象?
请帮我。
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 字段可能会以某种方式引发这种行为吗?
任何帮助都非常感谢并提前感谢您!
编辑:这是完整的堆栈跟踪:
java - java中serialVersionUID是如何序列化的?
类成员(静态)不能被序列化。原因很明显——它们不被类的对象持有。由于它们与类(而不是该类的对象)相关联,因此它们与对象分开存储。
serialVersionUID
被声明为实现java.io.Serializable
接口的类中的静态字段,如下所示。
它用作Serializable
类中的版本控制。如果没有明确声明,JVM 将根据Serializable
类的各个方面自动完成,如Java(TM) 对象序列化规范所述。
如果它没有在实现Serializable
接口的类中显式声明,则可能会发出警告。
可序列化的类
SomeClass
没有声明static
final
serialVersionUID
类型的字段long
即使它是序列化的static
,它是序列化的还是序列化的例外?
scala - 序列化:InvalidClassException scala
为什么我会收到此错误?
使用智能