声纳“使瞬时或可序列化”错误

时间:2019-12-09 16:20:12

标签: java json spring serialization

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

public class Test implements Serializable{

private String id;

private Map<String,Object> otherProperties;

}

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

enter image description here

我该如何解决这个问题?

此外,不进行此瞬态或可序列化是否有任何弊端?我可以完全序列化此类吗?

2 个答案:

答案 0 :(得分:2)

Map界面不会扩展Serializable界面,这就是Sonar向您发出警告的原因。

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

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

private transient Map<String, Object> otherProperties;

否则,您可以将otherProperties的类型更改为实现Map的{​​{1}}的实现,例如Serializable

答案 1 :(得分:0)

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