【发布时间】:2015-10-04 14:51:41
【问题描述】:
我正在通过 SonarQube 5.1 版分析 Java SE 7 项目。
然后,我在下面的代码中遇到了squid:S1948。
“可序列化”类中的字段应该是瞬态的或可序列化的
可序列化类中的字段本身必须是可序列化的或瞬态的,即使该类从未显式序列化或反序列化。这是因为在负载情况下,大多数 J2EE 应用程序框架会将对象刷新到磁盘,并且据称具有非瞬态、不可序列化数据成员的可序列化对象可能会导致程序崩溃,并为攻击者打开大门。
enum ShutterSpeed {
private final Rational value; // Make "value" transient or serializable.
...
}
我认为任何枚举字段都不会在 J2SE 5.0 中序列化 (Serialization of Enum Constants)
这是误报吗?
整个代码和问题是here。
【问题讨论】: