PMD 检查java代码:避免将构造器/方法参数传入的数组直接存储(ArrayIsStoredDirectly)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#arrayisstoreddirectly

构造器/方法接收到数组后,不应该直接将它们存储,而应该克隆对象并存储拷贝。这样用户以后修改了克隆数组也不会影响原数组。

该规则有属性allowPrivate可以控制是否允许私有方法/构造器直接存储数组,默认值是允许:
PMD 检查java代码:避免将构造器/方法参数传入的数组直接存储(ArrayIsStoredDirectly)_第1张图片

例如,下面的代码就违反了该规则:

public void setEnterpriseId(byte[] enterpriseId) {
    this.enterpriseId = enterpriseId;
}

可以修改为如下方式:

public void setEnterpriseId(byte[] enterpriseId) {
    this.enterpriseId = enterpriseId.clone();
}

你可能感兴趣的:(java,PMD)