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

Sam*_*Sam 23 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 {
Run Code Online (Sandbox Code Playgroud)

问候

S.L*_*ica 42

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

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

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


Sea*_*oyd 6

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

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


Vas*_*kov 6

如果你知道你的应用程序从不序列化的东西,添加-Xlint:-serial到命令行参数javac.例如,

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

这样您将获得除"serial"之外的所有警告.