我的项目中遇到了一种情况,我必须修改/重构枚举文件并使用更好的编码标准。我甚至不被允许创建一个新的常量文件等。
以下是我的问题示例 -
public enum Enumtricks {
// 1. private static final String DESC = "A String";
ELEMENT("A String"); // want to use constant DESC
// 2. private static final String DESC = "A String";
private final String description;
private Enumtricks(String description) {
this.description = description;
}
public String value() {
return this.description;
}
}
对于我收到错误的两种情况,信息是 - 1 GT;令牌“String”上的语法错误 2 - ;在定义字段之前无法引用字段
那么,有没有办法定义常数和&使用它们并避免使用String文字?
答案 0 :(得分:1)
或者在enum
之外添加一个接口,但在同一编译单元(=同一文件)内,如下所示:
package test;
interface Constants {
String DESC = "A String";
}
public enum Enumtricks {
Enumtricks(Constants.DESC);
private final String description;
private Enumtricks(final String description) {
this.description = description;
}
public String value() {
return this.description;
}
}
这样,您可以将所有常量分组到enum
。
答案 1 :(得分:0)
你的约束非常奇怪。如果我理解正确,你想在一个文件中有几个枚举。理论上这可能是这样的 - 但我不推荐它:
public class EnumCollection {
public enum Enumtricks {
ELEMENT1("A String"),
ELEMENT2("Another String"),
ELEMENT3("Yet another String");
private final String description;
private Enumtricks(String description) {
this.description = description;
}
public String value() {
return this.description;
}
}
public enum AnotherEnum {
EN, UM, SA, RE, CO, OL;
}
}
答案 2 :(得分:0)
这是我能让你在与枚举相同的文件中使用常量的最接近的。
public enum Enumtricks {
ELEMENT(EnumConstants.DESC);
private final String description;
private Enumtricks(String description) {
this.description = description;
}
public String value() {
return this.description;
}
private static class EnumConstants {
private static final String DESC = "A String";
}
}