Синтаксическая ошибка на токене "1", ожидается идентификатор в Enum Java - PullRequest
1 голос
/ 20 марта 2019

Я хочу реализовать Enum для Number, я хочу получить соответствующие строковые значения. Я уже перешел по ссылке: 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;
    }
}

1 Ответ

2 голосов
/ 20 марта 2019

Вы не можете начинать любое имя идентификатора в Java с числа, оно должно следовать правилам, указанным для наличия действительного имени переменной в Java.

Согласно переменной Oracle tutorial :

Имена переменных чувствительны к регистру.Имя переменной может быть любым допустимым идентификатором - последовательность символов Unicode неограниченной длины, начинающаяся с буквы, знака доллара "$" или символа подчеркивания "_".

Asполя в 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...