警告:[serial]可序列化类SomeClass没有serialVersionUID的定义

时间:2011-10-19 15:08:03

标签: java netbeans

虽然这个类并不打算设置为可序列化,但我收到了这个不寻常的警告!如果你遇到这种奇怪的警告,有人会告诉我吗?!

C:\Documents and Settings\...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID
public class NewPortalConnection extends javax.swing.JFrame {

此致

3 个答案:

答案 0 :(得分:41)

当您从实现Serializable的类派生时,会出现此警告。在您的情况下,Serializable父类是JFrame。

您可以使用@SuppressWarnings(“serial”)取消此警告,或者为该类提供serialVersionUID:private static final long serialVersionUID = ...;(点的长值)。

SO上有discussion,最好是。{/ p>

答案 1 :(得分:6)

JFrame实现了Serializable,因此所有扩展类也实现了Serializable。

这是一个教程about Serializable and serialVersionUID,但为了真正理解这个主题,您应该阅读Effective Java (2nd Ed) by Joshua Bloch的第11章

答案 2 :(得分:6)

如果您知道您的应用程序从不对事物进行序列化,请将-Xlint:-serial添加到javac的命令行参数中。例如,

javac -Xlint -Xlint:-serial *****

这样你就会收到除“serial”之外的所有警告。