如何避免此 PMD 错误 - 字符串文字“TEST”在此文件中出现 X 次;

5 java enums pmd

如何避免 Java 代码中的 PMD 错误?

public enum testEnum {

    TEST1(1L, "TEST", "random1");
    TEST2(2L, "TEST", "random2");
    TEST3(3L, "TEST", "random3");
    TEST4(4L, "TEST", "random4");
    TEST5(5L, "TEST", "random5");
    TEST6(6L, "TEST", "random6");
    TEST7(7L, "OTHER STRING", "random7");

    private Long id;
    private String type;
    private String text;

    private testEnum(Long id, String type, String text){
      this.id = id;
      this.type = type;
      this.text = text;
    }
}
Run Code Online (Sandbox Code Playgroud)

运行 PMD 检查时,它会引发以下错误:

字符串文字“TEST”在这个文件中出现了 6 次;第一次出现在第 10 行

有没有办法避免它而不是使用@SuppressWarnings("PMD")

beb*_*bbo 8

有时有充分的理由禁用这个或那个 PMD 警告。禁用特定警告的方法是将显式规则添加到抑制中。这里是:

@SuppressWarnings("PMD.AvoidDuplicateLiterals")
Run Code Online (Sandbox Code Playgroud)

这也适用于所有其他规则。

  • 谢谢。这确实是正确的答案。在很多情况下,我们希望使用相同的字符串文字 - 特别是在输出具有相似输出和不同变量的测试场景时。 (2认同)

SWi*_*els 4

你应该用private static final String = "TEST"它来做一个。重复相同的字符串是不好的做法。

避免这种情况的最好方法是使用更有用的字符串而不是“TEST”。