#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)); }
Комментариев нет:
Отправить комментарий