作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 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;
}
对于上述代码,我收到以下错误消息:在定义字段之前无法引用该字段。
最佳答案
正如 IntelliJ IDEA 在提取常量时建议的那样 - 创建静态嵌套类。这种方法有效:
@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";
}
}
关于java - 如何在 Java 枚举中定义静态常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60877788/
我是一名优秀的程序员,十分优秀!