如何删除警告可序列化类ClASSNAME没有声明类型为long 的静态最终serialVersionUID字段

我创建了一个扩展Exception类的类,我在Eclipse上收到了这个警告

可序列化类PhoneAlreadyExists不声明long类型的静态最终serialVersionUID字段

如何删除它?

 public class PhoneAlreadyExists extends Exception { public PhoneAlreadyExists() { // TODO Auto-generated constructor stub super(); } PhoneAlreadyExists(String message) { super(message); } } 

在您的类上添加注释@SuppressWarnings("serial") ,以忽略该警告

要全局更改eclipse中的行为:转到Preferences-> Java-> Compiler – > Errors / Warnings-> Potential Programming Problems。 这个具体问题有一个条目。 您也可以为特定项目更改它。

这回答了你的问题,虽然 – 我建议把它留在警告级别并添加缺少的字段。 或者将SuppressWarnings注释添加到那些真正不需要该字段的可序列化类中,因为它们永远不会被序列化。

您需要声明long类型的静态最终serialVersionUID字段。

查找Java的Serializable API。 exception必须实现SerializableSerializable类必须具有serialVersionUID

 public static final long serialVersionUID = 1L; 

每当您对类进行不兼容的更改时,请增加此版本。

要忽略警告“可序列化类ClASSNAME不声明静态最终serialVersionUID ……”,请在eclipse *中执行以下操作:

  1. 单击Window-Preferences-Java-Compiler-Errors / Warnings
  2. 点击“潜在的编程问题”
  3. 向下滚动到“Serializable class without serialVersionUID”
  4. 选择“忽略”
  5. 单击“应用”
  6. 单击确定

保存并关闭eclipse IDE当您重新打开eclipse时,不应再列出这些特定警告。

*对于此示例解决方案,我正在使用Eclipse IDE for Java Developers – Version:Mars.2 Release(4.5.2)

只需在公共类上面添加此代码@SuppressWarnings(“serial”)PhoneAlreadyExists extends Exception {line

在大多数情况下最好添加serialversionUID,但是eclipse会在所有swing派生类上发出警告,这些类永远不会被序列化。 我尝试更改偏好设置 – > Java – >编译器 – >错误/警告 – >潜在的编程问题,但它没有任何效果。 所以我想最好的解决办法是抑制每个类永远不会序列化的警告; 或咬紧牙关,忽略警告。