java - "declare a static final serialVersionUID"警告是什么意思以及如何解决?

标签 java

Possible Duplicate:
What does it mean: The serializable class does not declare a static final serialVersionUID field?

Java 编译器警告:可序列化类 [*****] 未声明 long 类型的静态最终 serialVersionUID 字段。

为什么?如何解决?

最佳答案

这解释得很好here :

The serialVersionUID is a universal version identifier for a Serializable class. Deserialization uses this number to ensure that a loaded class corresponds exactly to a serialized object. If no match is found, then an InvalidClassException is thrown.

您可以通过添加来修复错误

private static final long serialVersionUID = 7526472295622776147L;  // unique id

到类(class)。

进一步阅读:


附注:如果您使用的是 Eclipse,并且您(并且没有其他人)打算序列化您的类,您也可以通过转到

来抑制错误

     窗口 → 首选项 → Java → 编译器 → 错误/警告

并在“Serializable Class without serialVersionUID”上选择“Ignore”。

关于java - "declare a static final serialVersionUID"警告是什么意思以及如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632065/

相关文章:

java - 为 Dropwizard 资源实现自定义日志记录

java - 在java中实现随机搜索算法

java - 将带 collection.size 的 hibernate HQL 转换为条件查询

java - spring data MongoRepository 在插入之前通过查询整个文档来检查文档是否存在

java - 测试我的 Java UDP 对等程序时出现问题

java - 空字符串上的通配符

java - 为什么 Java 不像 C# 有那么多版本?

java - 如何在类的 Timer 方法中可见 HTML 标记组件

java - Junit java.lang.AssertionError : JSON path "$.reward"

java - Joss 和 Struts 问题。我应该把断点放在哪里?