java - 声纳“使瞬态或可序列化”错误
问题描述
我有以下可序列化的类(实现可序列化):
public class Test implements Serializable{
private String id;
private Map<String,Object> otherProperties;
}
但是,似乎此属性会导致序列化出现一些问题:
我怎么解决这个问题 ?
此外,不使这种瞬态或可序列化有什么缺点吗?我能完全序列化这个类吗?
解决方案
该Map
接口不扩展接口Serializable
,这就是 Sonar 警告您的原因。
序列化 的实例时Test
,必须选择是否要otherProperties
序列化。
如果您不想序列化otherProperties
,则该字段应标记为transient
:
private transient Map<String, Object> otherProperties;
否则,您可以将 的类型更改为该otherProperties
implements 的Map
实现Serializable
,例如HashMap
.
推荐阅读
- javascript - Firebase Cloud Firestore,如何使用 javascript 仅接收 4 个文档?
- node.js - 有没有办法在 Node.js 中获取命令的可能参数?
- amazon-web-services - Cassandra 2021 目前推荐的最大存储空间是多少?
- reactjs - 为什么这个错误:太多的重新渲染。React 限制渲染次数以防止无限循环
- r - 在 echarts4r `e_pie` 饼图中显示计数和百分比
- jupyter-lab - 如何在 Jupyter Labs 中显示 OpenCV VideoCapture
- angular - 我无法根据 Angular 中的键来迭代嵌套对象
- sql - AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效
- c++ - Boost asio ssl socket 不接收完整数据 tcp socket 和 ssl socket 的不同行为
- android - 如何让资产超过 AppBar?