令牌“ 1”上的语法错误,枚举Java中应有标识符

时间:2019-03-20 17:30:34

标签: java-8

我想为Enum实现Number,我想获取其各自的String值。我已经点击了链接:enter image description here

我得到的错误是

  

令牌“ 1”的语法错误,应使用标识符

     

令牌“ 2”的语法错误,应使用标识符

public enum CompanyCityType {
    1("New York"),
    2("Reston");

    private Integer companyCityType;

    CompanyCityType(Integer companyCityType) {
        this.companyCityType = companyCityType;
    }

    public Integer getCompanyAddrType() {
        return this.companyCityType;
    }
}

1 个答案:

答案 0 :(得分:2)

在Java中,任何标识符名称都不能以数字开头,它必须遵循为在Java中使用有效变量名而指定的规则。

根据Oracle变量tutorial

  

变量名称区分大小写。变量的名称可以是任何合法的   标识符-无限长度的Unicode字母和   以字母,美元符号“ $”或数字开头的数字   下划线字符“ _”。

由于enum中的字段实际上是public static final fields(单个实例)或 类变量 ,它们遵循与命名规则相同的一组命名规则。一个普通的Java变量。

您需要将代码重构为:

public enum CompanyCityType {

    NEW_YORK(1),
    RESTON(2);

    private int companyCityType;

    CompanyCityType(int companyCityType) {
        this.companyCityType = companyCityType;
    }

    public int getCompanyAddrType() {
        return this.companyCityType;
    }
}