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

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

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

问候

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

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

这里有关于SO的讨论 ,这是更可取的。

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

这是一个关于Serializable和serialVersionUID的教程,但要真正理解这个主题,你应该阅读Joshua Bloch的Effective Java(2nd Ed)第11章。

如果您知道您的应用程序从不对事物进行序列化,那么这是一种完全抑制警告的方法。

添加-Xlint:-serialjavac命令行参数。 例如,

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

这样您将获得除“serial”之外的所有警告。