【问题标题】:Serializing Sonarqube issue when mebers are java.util.List type当成员是 java.util.List 类型时序列化 Sonarqube 问题
【发布时间】:2019-05-28 07:54:55
【问题描述】:

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

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

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

【问题讨论】:

  • 能否请您更具体地回答您的问题?

标签: java arraylist sonarqube serializable


【解决方案1】:

请务必根据RSPEC-1948Collection 字段标记为private

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

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

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

【讨论】:

  • @abo 您需要确保该字段也是private
猜你喜欢
  • 2015-09-07
  • 2014-06-07
  • 2018-11-22
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2020-01-31
相关资源
最近更新 更多