#java
Есть перечисление с конструктором для задания индекса дня недели.
Необходимо создать метод, преобразующий этот индекс в соответствующий день недели.
public enum DayOfWeek {
MONDAY(0),
TUESDAY(1),
WEDNESDAY(2),
THURSDAY(3),
FRIDAY(4),
SATURDAY(5),
SUNDAY(6);
int dayIndex;
DayOfWeek(int dayIndex) {
setDayIndex(dayIndex);
}
public int getDayIndex() {
return dayIndex;
}
public void setDayIndex(int dayIndex) {
this.dayIndex = dayIndex;
}
public static DayOfWeek valueOf (int index){
//метод для преобразования индекса дня недели в соответствующий элемент перечисления.
}
}
Подскажите как реализовать данный метод.
Ответы
Ответ 1
Стоит воспользоваться YOUR_ENUM.values()[index] Компилятор Java автоматически генерирует статический метод values() для каждого перечисления в java (вы не найдете метод values() в исходниках java). Метод values() возвращает массив констант данного перечисление в том порядке в котором они определены. Данный метод используется при переборе элементов перечисления. for (DayOfWeek p : DayOfWeek.values()) { System.out.printf("The day is %s, num = %d \n", p, p.getDayIndex()); } В итоге метод valueOf будет выглядеть так: public static DayOfWeek valueOf (int index){ return DayOfWeek.values()[index]; } В Main протестировать: public static void main (String[] args) throws java.lang.Exception { System.out.print(DayOfWeek.valueOf(6)); }
Комментариев нет:
Отправить комментарий