虽然这个类并不打算设置为可序列化,但我收到了这个不寻常的警告!如果你遇到这种奇怪的警告,有人会告诉我吗?!
C:\Documents and Settings\...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID
public class NewPortalConnection extends javax.swing.JFrame {
此致
答案 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”之外的所有警告。