https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_errorprone.html#avoidliteralsinifcondition
在条件语句中,避免避免使用硬编码的字面量。可以将字面量声明为有描述意义的静态成员或者私有成员,提升可维护性。默认忽略"-1" 和"0"。
该规则有属性ignoreMagicNumbers、ignoreExpressions:
例如,下面在if条件语句中使用了字面量’0’,违反了该规则:
if (stringBuffer.charAt(0) == '0') {
decStr = stringBuffer.substring(1);
} else {
decStr = stringBuffer.toString();
}
可以修改为:
/**
* 字符'0'.
*/
private static final char ZERO_CHAR = '0';
if (stringBuffer.charAt(0) == ZERO_CHAR) {
decStr = stringBuffer.substring(1);
} else {
decStr = stringBuffer.toString();
}