Java 8 标记“”上的语法错误;“1”;,枚举Java中需要标识符

Java 8 标记“”上的语法错误;“1”;,枚举Java中需要标识符,java-8,Java 8,我想实现Enum对于Number,我想得到它各自的字符串值。我已经跟踪了链接: 我得到的错误是 令牌“1”上的语法错误,应为标识符 令牌“2”上的语法错误,应为标识符 Java中的任何标识符名称都不能以数字开头,它必须遵循为在Java中使用有效变量名而指定的规则 根据Oracle变量: 变量名区分大小写。变量的名称可以是任何合法名称 标识符-Unicode字母和字符的无限长序列 以字母开头的数字、美元符号“$”或 下划线字符“\” 由于枚举中的字段实际上是公共静态最终字段(单例实例)或类变量,因

我想实现
Enum
对于
Number
,我想得到它各自的字符串值。我已经跟踪了链接:

我得到的错误是

令牌“1”上的语法错误,应为标识符

令牌“2”上的语法错误,应为标识符


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

根据Oracle变量:

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

由于
枚举
中的字段实际上是
公共静态最终字段
(单例实例)或类变量,因此它们遵循与普通Java变量相同的命名规则集

您需要重构代码以:

public enum CompanyCityType {

    NEW_YORK(1),
    RESTON(2);

    private int companyCityType;

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

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

创建名为
1
的枚举而不是仅仅使用
1
没有那么大的优势;也许
NEW_YORK
或者其他(类型名称可能更好)会更具信息性您不能以数字开头命名字段,这是Java中的规则。枚举常量是:“标识符是Java字母和Java数字的无限长序列,其中第一个必须是Java字母。”
public enum CompanyCityType {

    NEW_YORK(1),
    RESTON(2);

    private int companyCityType;

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

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