我的严重声纳违规并且不知道如何解决。请帮忙。
“Serializable”类中的字段应该是瞬态的或可序列化的(squid:S1948)
Serializable类中的字段本身必须是Serializable或transient,即使该类从未显式序列化或反序列化。这是因为在负载下,大多数J2EE应用程序框架将对象刷新到磁盘,而具有非瞬态,不可序列化数据成员的涉嫌Serializable对象可能导致程序崩溃,并为攻击者打开大门。 此规则在非Serializable字段和集合字段上引发了一个问题,当它们不是私有时(因为它们可以在外部分配非Serializable值),以及在类中为它们分配非Serializable类型时。
规则说所有对象必须序列化或传输,我们不想让它传输,因为我们将它保存到activity,这个成员是“Object”类的类型,我们不能让他序列化。
示例类:
public class CharacteristicData implements ICharacteristicData, Serializable {
Object val;
String code;
Class<?> type; // Qualified class name
boolean isMandatory;
.........................
此类表示属性。我们只能在运行时告诉它的类型(字符串,日期,数字等......)