如何创建静态枚举,如下所示
static enum Test{
employee-id,
employeeCode
}
截至目前,我遇到了错误。
答案 0 :(得分:19)
Java不可能这样做,因为每个项必须是有效的标识符(有效的Java标识符可能不包含破折号)。
最接近的事情是为每个枚举值添加自定义属性或覆盖toString
方法,因此您可以执行以下操作:
Test.EMPLOYEE_ID.getRealName(); // Returns "employee-id"
Test.EMPLOYEE_CODE.getRealName(); // Returns "employeeCode"
public enum Test
EMPLOYEE_ID("employee-id"),
EMPLOYEE_CODE("employeeCode");
private Test(String realName) {
this.realName = realName;
}
public String getRealName() {
return realName;
}
private final String realName;
}
答案 1 :(得分:16)
这不是针对枚举的。这适用于Java中的所有标识符:类名,方法名,变量名等。连字符是根本不允许的。您可以在Java Language Specification, chapter 3.8 "Identifiers"中找到所有有效字符。
说明问题:
int num-ber = 5;
int num = 4;
int ber = 3;
System.out.println(num-ber);
你期望在这里发生什么?
答案 2 :(得分:1)
你不能这样做。枚举常量必须是合法的Java标识符。合法Java标识符不能包含-
。如果这是可接受的替代品,您可以使用_
。
答案 3 :(得分:0)
您不能使用连字符声明枚举常量。 如果您将连字符作为枚举值检索,则应该在枚举中使用值方法,您可以在其toString方法中使用该方法,或者在枚举上访问此方法以获取连字符值