我正在尝试通过以下类定义在 Java 中扩展 LinkdList:
public class Roster extends LinkedList<Teammate>{
}
但我这样做会收到以下警告:
The serializable class Roster does not declare a static final serialVersionUID field of type long
这是什么意思,我该如何删除警告?
我正在尝试通过以下类定义在 Java 中扩展 LinkdList:
public class Roster extends LinkedList<Teammate>{
}
但我这样做会收到以下警告:
The serializable class Roster does not declare a static final serialVersionUID field of type long
这是什么意思,我该如何删除警告?
该警告意味着您在扩展该课程时没有做您“同意”做的事情。该类相信static final serialVersionUID field of type long
如果您扩展它,您将在您的类中拥有一个。那是因为它implements Serializable
是一个需要这个变量的接口。
要抑制警告,请添加:
@SuppressWarnings("serial")
在声明类的行上方 ( public class Foo
)
要修复警告,请按如下方式声明变量:
private static final long serialVersionUID = 1812107715815332895L;
并确保您使用的 long 是随机生成的。
通过单击行号旁边的黄色灯泡,Eclipse 允许将这两个选项作为快速修复。
serialVersionUID 是 Serializable 类的通用版本标识符。反序列化使用这个数字来确保加载的类与序列化的对象完全对应。如果未找到匹配项,则抛出 InvalidClassException。
要解决此问题,请在类中声明一个静态唯一 ID -
private static final long serialVersionUID = 75264722950069776147L;
// 唯一身份