Как объявить целочисленные значения константами с помощью класса enum? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть набор целочисленных значений, которые мне нужно определить как часть enum, я делаю это.

public enum Test{

    763("763"),
    1711("1711"),
    8050("8050"),
    9311("9311");

    private Integer test;

    Test(Integer test) {
        this.test= test;
    }

    public Integer getTest() {
        return test;
    }

}

Это дает мне неожиданный токен в первой строке .. Что не хватает здесь?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 17 июня 2020

Java не позволяет переменным начинаться с числа. Взгляните на официальные правила переменных . Кроме того, вы должны передавать test как целое число, а не как String.

Рабочее решение может выглядеть следующим образом:

public enum Test {
  T_763(763),
  T_1711(1711),
  T_8050(8050),
  T_9311(9311);

  private Integer test;

  Test(Integer test) {
    this.test = test;
  }

  public Integer getTest() {
    return test;
  }

}
1 голос
/ 17 июня 2020
  1. Опечатка с открывающей фигурной скобкой в ​​конструкторе
  2. Сами перечисления не могут быть числами (это имена, которые не могут быть числами в java)
  3. Значение объявленное целое число, но вы передаете String.

Вот фиксированная версия того, что вы пытаетесь сделать:

public enum Test {
    T_763(763),
    T_1711(1711),
    T_8050(8050),
    T_9311(9311);

    private final Integer test;
    Test(Integer test) {
        this.test= test;
    };
    public Integer getTest() {
        return test;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...