Страницы

Поиск по вопросам

суббота, 4 января 2020 г.

Преобразование индекса в соответствующий элемент перечисления

#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)); }

Комментариев нет:

Отправить комментарий