我想创建一个类,例如,扩展HttpServlet?我的编译器警告我我的类应该有一个serialVersionUID。如果我知道这个对象永远不会被序列化,我应该定义它还是添加注释来抑制这些警告?
你会做什么?为什么?
发布于 2008-09-28 20:58:12
如果您不打算序列化实例,请添加一个SuppressWarning。
生成的序列ID可能有点危险。它表明您有意为其指定了序列号,并将其保存以进行序列化和反序列化。在更改类的较新版本的应用程序中,很容易忘记更新序列号。如果类字段已更改,则反序列化将失败。拥有一个SuppressWarning至少可以告诉代码的读者您不打算序列化这个类。
发布于 2008-09-28 21:35:23
我拒绝被Eclipse吓倒,让我的代码变得杂乱!
我只是将Eclipse配置为不生成关于缺少serialVersionUID的警告。
发布于 2010-05-14 11:24:33
感谢@ Steve Jessop在这个问题上的回答。只有5行代码...这几乎不是什么麻烦。
我在这个类的上方添加了@SuppressWarnings("serial")
。
我还添加了这个方法:
private void writeObject(ObjectOutputStream oos) throws IOException {
throw new IOException("This class is NOT serializable.");
}
希望这就是史蒂夫的意思:)
https://stackoverflow.com/questions/146715
复制相似问题