有没有办法在Java枚举声明中定义静态最终变量(有效常量)?
我想要的是在一个地方定义BAR(1 ... n)值的字符串文字值:
@RequiredArgsConstructor
public enum MyEnum {
BAR1(BAR_VALUE),
FOO("Foo"),
BAR2(BAR_VALUE),
...,
BARn(BAR_VALUE);
private static final String BAR_VALUE = "Bar";
@Getter
private final String value;
}
Run Code Online (Sandbox Code Playgroud)
我收到上面代码的以下错误消息:无法在定义之前引用字段.
如何避免 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")?