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