как создать статическое перечисление как ниже
static enum Test{
employee-id,
employeeCode
}
На данный момент я получаю ошибки.
Это невозможно с Java, потому что каждый элемент имеет быть допустимым идентификатором (а допустимые идентификаторы Java не могут содержать дефисы).
Ближайшим вариантом было бы добавить настраиваемое свойство к каждому значению перечисления или переопределить метод toString
, чтобы вы могли сделать следующее:
Test.EMPLOYEE_ID.getRealName(); // Returns "employee-id"
Test.EMPLOYEE_CODE.getRealName(); // Returns "employeeCode"
public enum Test
EMPLOYEE_ID("employee-id"),
EMPLOYEE_CODE("employeeCode");
private Test(String realName) {
this.realName = realName;
}
public String getRealName() {
return realName;
}
private final String realName;
}
Это не относится к перечислениям. Это относится ко всем идентификаторам в Java: именам классов, именам методов, именам переменных и так далее. Дефисы просто недопустимы. Вы можете найти все допустимые символы в Спецификация языка Java, глава 3.8 «Идентификаторы» .
Чтобы проиллюстрировать проблему:
int num-ber = 5;
int num = 4;
int ber = 3;
System.out.println(num-ber);
Что вы ожидаете здесь произойти?
Вы не можете этого сделать. Константы перечисления должны быть допустимыми идентификаторами Java. Допустимые идентификаторы Java не могут содержать -
. Вы можете использовать _
, если это приемлемая замена.
Вы не можете объявить константу перечисления с дефисом. Если вы вводите дефис в качестве значения перечисления, у вас должен быть метод значения в перечислении, который вы либо используете в его методе toString, либо обращаетесь к этому методу в перечислении, чтобы получить значение дефиса
{ {1}}