警告:可序列化类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:-serial
到javac
命令行参数。 例如,
javac -Xlint -Xlint:-serial *****
这样您将获得除“serial”之外的所有警告。