Изучая Enum, который я привык использовать исключительно для перечисления различных фиксированных значений (например, дней недели), я наткнулся на то, чего не совсем понял — реализацию абстрактных методов внутри Enum.
Мой вопрос заключается в следующем: во-первых, нужен ли этот механизм сегодня? Это похоже на запах кода, хотя я не могу объяснить почему.
Во-вторых, как часто Enum используется таким образом? Я понимаю, что всегда могут быть исключительные случаи, но это делает код довольно трудным для чтения.
Вот пример:
Код: Выделить всё
public enum Operation {
ADD {
@Override
public int apply(int x, int y) {
return x + y;
}
},
SUBTRACT {
@Override
public int apply(int x, int y) {
return x - y;
}
};
public abstract int apply(int x, int y);
}
>
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-in-enums
Мобильная версия