首页 > 解决方案 > 令牌“1”上的语法错误,枚举 Java 中预期的标识符

问题描述

我想实现Enumfor Number,我想得到它各自的 String 值。我已经关注了链接: http: //www.makeinjava.com/convert-enum-integer-string-value-java/

我得到的错误是

令牌“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;
    }
}

标签: java-8

解决方案


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

根据 Oracle 变量教程

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

由于 anenum中的字段实际上是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;
    }
}

推荐阅读