首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用serialVersionUID还是禁止显示警告?

使用serialVersionUID还是禁止显示警告?
EN

Stack Overflow用户
提问于 2008-09-28 20:51:05
回答 9查看 33.8K关注 0票数 72

我想创建一个类,例如,扩展HttpServlet?我的编译器警告我我的类应该有一个serialVersionUID。如果我知道这个对象永远不会被序列化,我应该定义它还是添加注释来抑制这些警告?

你会做什么?为什么?

EN

回答 9

Stack Overflow用户

发布于 2008-09-28 20:58:12

如果您不打算序列化实例,请添加一个SuppressWarning。

生成的序列ID可能有点危险。它表明您有意为其指定了序列号,并将其保存以进行序列化和反序列化。在更改类的较新版本的应用程序中,很容易忘记更新序列号。如果类字段已更改,则反序列化将失败。拥有一个SuppressWarning至少可以告诉代码的读者您不打算序列化这个类。

票数 20
EN

Stack Overflow用户

发布于 2008-09-28 21:35:23

我拒绝被Eclipse吓倒,让我的代码变得杂乱!

我只是将Eclipse配置为不生成关于缺少serialVersionUID的警告。

票数 15
EN

Stack Overflow用户

发布于 2010-05-14 11:24:33

感谢@ Steve Jessop在这个问题上的回答。只有5行代码...这几乎不是什么麻烦。

我在这个类的上方添加了@SuppressWarnings("serial")

我还添加了这个方法:

代码语言:javascript
复制
private void writeObject(ObjectOutputStream oos) throws IOException {
   throw new IOException("This class is NOT serializable.");
}

希望这就是史蒂夫的意思:)

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/146715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档