我有以下可序列化的类(可序列化的实现):
public class Test implements Serializable{
private String id;
private Map<String,Object> otherProperties;
}
但是,似乎此属性导致序列化出现了一些问题:
我该如何解决这个问题?
此外,不进行此瞬态或可序列化是否有任何弊端?我可以完全序列化此类吗?
答案 0 :(得分:2)
Map
界面不会不扩展Serializable
界面,这就是Sonar向您发出警告的原因。
序列化Test
的实例时,必须选择是否要序列化otherProperties
。
如果您不想要序列化otherProperties
,则该字段应标记为transient
:
private transient Map<String, Object> otherProperties;
否则,您可以将otherProperties
的类型更改为实现Map
的{{1}}的实现,例如Serializable
。
答案 1 :(得分:0)
如果这是一个选项(例如,如果您使用 Jackson 来(反)序列化您的类),请从您的 Serializable
类中删除 Test
标记。序列化仍然有效,您将摆脱声纳中的警告。