Как в перечисление добавить значение
Например есть перечисление
enum week{
SUNDAY, MONDAY, TUESDAY
}
как сделать так, чтобы при вызове SUNDAY появлялось значение 7, MONDAY 1 и т.д.
System,out.println(SUNDAY) // вывод 7
Ответы (2 шт):
Автор решения: Roman Konoval
→ Ссылка
Можно так:
enum week {
SUNDAY(7), MONDAY(1), TUESDAY(2);
private int value;
week(int value) {
this.value = value;
}
@Override
public String toString() {
return Integer.toString(value);
}
}
Автор решения: gil9red
→ Ссылка
Действия:
- В
enumдобавляете поле для хранения значения и конструктор. - Указывая значения перечисления указываете номер дня
- Чтобы видеть значение перечисления без обращения к полю
value, нужно переопределить методtoString
Пример:
public enum DayOfWeek {
MONDAY(1),
TUESDAY(2),
WEDNESDAY(3),
THURSDAY(4),
FRIDAY(5),
SATURDAY(6),
SUNDAY(7);
int value;
DayOfWeek(int value) {
this.value = value;
}
@Override
public String toString() {
return "" + value;
}
}
Тест:
System.out.println("SUNDAY: " + DayOfWeek.SUNDAY.value);
System.out.println("MONDAY: " + DayOfWeek.MONDAY.value);
System.out.println("SUNDAY.toString(): " + DayOfWeek.SUNDAY);
Результат:
SUNDAY: 7
MONDAY: 1
SUNDAY.toString(): 7