声纳“Make transient or serializable”错误

新手上路,请多包涵

我有以下可序列化类(实现可序列化):

 public class Test implements Serializable{

private String id;

private Map<String,Object> otherProperties;

}

但是,似乎此属性导致序列化出现一些问题:

在此处输入图像描述

我怎么解决这个问题 ?

此外,不使此瞬态或可序列化有任何缺点吗?我能完全连载这个课程吗?

原文由 Nexussim Lements 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 10.1k
2 个回答

Map 接口 扩展 Serializable 接口,这就是 Sonar 警告您的原因。

序列化 Test 的实例时,必须选择是否要序列化 otherProperties

如果您 不想 序列化 otherProperties ,则该字段应标记为 transient

 private transient Map<String, Object> otherProperties;

Otherwise, you can change the type of otherProperties to an implementation of Map that implements Serializable , such as HashMap .

原文由 Jacob G. 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果这是一个选项(例如,如果您使用 Jackson 来(反)序列化您的类),请从您的 Test 类中删除 Serializable 标记。序列化仍然有效,您将摆脱 Sonar 中的警告。

原文由 Krzysztof Kaszkowiak 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏