【发布时间】:2012-08-09 10:43:06
【问题描述】:
我有以下类签名和ClientEventSourc 实现Serializable:
public class Grid extends ClientEventSource implements Focusable, FramingBlockWrapper,LIMSEditableField
现在FindBugs 将其列为狡猾:
类是可序列化的,但没有定义 serialVersionUID
这个类实现了Serializable接口,但没有定义 一个 serialVersionUID 字段。像添加引用一样简单的更改 .class 对象将向类添加合成字段,这将 不幸的是,更改了隐式 serialVersionUID(例如,添加 对 String.class 的引用将生成一个静态字段 类$java$lang$String)。此外,不同的源代码到字节码 编译器可能对合成变量使用不同的命名约定 为对类对象或内部类的引用而生成。确保 Serializable 跨版本的互操作性,考虑添加一个 显式的serialVersionUID。
能否解释一下它的含义以及解决此问题的最佳方法是什么?
【问题讨论】:
标签: java serialization