通过在Java中扩展LinkedList类来发出警告

时间:2012-07-05 05:29:40

标签: java

我正在尝试通过以下类定义在Java中扩展LinkdList:

public class Roster extends LinkedList<Teammate>{

}

但是我这样做会收到以下警告:

The serializable class Roster does not declare a static final serialVersionUID field of type long

这意味着什么?如何删除警告?

2 个答案:

答案 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