Is there any way to define static final variables (effectively constants) in a Java enum declaration?
What I want is to define in one place the string literal value
As IntelliJ IDEA suggest when extracting constant - make static nested class. This approach works:
@RequiredArgsConstructor
public enum MyEnum {
BAR1(Constants.BAR_VALUE),
FOO("Foo"),
BAR2(Constants.BAR_VALUE),
...,
BARn(Constants.BAR_VALUE);
@Getter
private final String value;
private static class Constants {
public static final String BAR_VALUE = "BAR";
}
}