成员为java.util.List类型

时间:2019-01-01 05:46:18

标签: java arraylist sonarqube serializable

我定义了可序列化的类,并且它具有java.util.List类型的成员。在声纳中显示为“ Serializable”类中的字段应该是瞬态或可序列化的”错误

但是这些成员的实际实现是可序列化的ArrayLists。

public class TestDataClass implements Serializable {
    List<String> listMember = new ArrayList();
}

1 个答案:

答案 0 :(得分:1)

请确保根据RSPEC-1948Collection字段标记为 private

  

此规则在不可序列化字段以及   收集字段不是私有的(因为它们可以是   外部分配了不可序列化的值),以及在类中为其分配了不可序列化的类型时。

并指定类型,而不使用原始类型ArrayList,例如:

private List<String> listMember = new ArrayList<>(); // notice '<>' for 'ArrayList<String>'