可变字段不应 "public static"

Mutable fields should not be "public static"

我收到以下行的 sonarQube 错误,请专家建议如何解决这个问题?提前致谢

    protected static final String [] COLUMN_NAMES = new String[]{"date","customerNumber","customerName",
            "account","emailAdress","mobilePhoneNumber","emailStatus"};

您可以将此数组更改为 private 变量。

然后添加一个 static 方法,该方法 returns 此数组的副本,或此数组支持的不可变 List

例如:

private static final String [] COLUMN_NAMES = new String[]{"date","customerNumber","customerName",
        "account","emailAdress","mobilePhoneNumber","emailStatus"};

protected static List<String> getColumnNames() {
    return Collections.unmodifiableList(Arrays.asList(COLUMN_NAMES));
}

或者您可以将数组变量替换为不可修改的 List 而不是使用该方法。这会更有效(因为 List 将被创建一次,而不是在每次调用 static 方法时创建):

protected static List<String> COLUMN_NAMES = Collections.unmodifiableList(Arrays.asList("date","customerNumber","customerName",
        "account","emailAdress","mobilePhoneNumber","emailStatus"));

您可以将 COLUMN_NAMES 设为私有并简单地 return 克隆它,如下所示:

private static final String [] COLUMN_NAMES = new String[]{"date","customerNumber","customerName",
        "account","emailAdress","mobilePhoneNumber","emailStatus"};

protected static String[] getCloneArray()
{
  return COLUMN_NAMES.clone();
}

这样你原来的数组就不会被修改