如何使用Java中带有连字符的值创建静态枚举?

cod*_*der 9 java enums

如何创建如下的静态枚举

static enum Test{
    employee-id,
    employeeCode
}
Run Code Online (Sandbox Code Playgroud)

截至目前,我遇到了错误.

Dan*_*ski 21

这对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;
}
Run Code Online (Sandbox Code Playgroud)

  • 并使用全部大写枚举常量. (3认同)

Bal*_*usC 17

这不是针对枚举的.这适用于Java中的所有标识符:类名,方法名,变量名等.连字符是根本不允许的.您可以在Java语言规范,第3.8章"标识符"中找到所有有效字符.

为了说明问题:

int num-ber = 5;
int num = 4;
int ber = 3;

System.out.println(num-ber);
Run Code Online (Sandbox Code Playgroud)

你期望在这里发生什么?