我有一个代码片段,其中我从sonar获得了关键代码的味道,因为异常实现了可序列化。这段代码在生产环境中运行了很长一段时间,我看不到sonar文档中的任何问题:“例如,在负载下,大多数j2ee应用程序框架都会将对象刷新到磁盘上,而一个据称是可序列化的对象(包含非瞬时的、不可序列化的数据成员)可能会导致程序崩溃。”。这个声纳问题会导致应用程序中的代码崩溃吗?
waxmsbnn1#
如果您不打算反序列化 entries 现场使用 transient 关键字:
entries
transient
private final transient List<Objects> entries = new ArrayList<>();
否则,您必须实现自定义的反序列化,但是,我不确定它能否解决声纳问题。关键字 transient 解决了声纳问题。j2ee应用程序框架将对象刷新到磁盘这取决于物体 OuterException 它本身实际上是反序列化的。我怀疑j2ee会在没有被告知的情况下序列化您自己创建的自定义对象。实际上,你可以用“不会修复”的解决方案和适当的评论来结束这个问题,这没有错。
OuterException
1条答案
按热度按时间waxmsbnn1#
如果您不打算反序列化
entries
现场使用transient
关键字:否则,您必须实现自定义的反序列化,但是,我不确定它能否解决声纳问题。关键字
transient
解决了声纳问题。j2ee应用程序框架将对象刷新到磁盘
这取决于物体
OuterException
它本身实际上是反序列化的。我怀疑j2ee会在没有被告知的情况下序列化您自己创建的自定义对象。实际上,你可以用“不会修复”的解决方案和适当的评论来结束这个问题,这没有错。