Мне интересно, как лучше всего на Java 8 работать со всеми значениями перечисления. В частности, когда вам нужно получить все значения и добавить их где-нибудь, например, предположив, что у нас есть следующее перечисление:
public enum Letter {
A, B, C, D;
}
Я мог бы, конечно, сделать следующее:
for (Letter l : Letter.values()) {
foo(l);
}
Но я мог бы также добавить следующий метод в определение перечисления:
public static Stream<Letter> stream() {
return Arrays.stream(Letter.values());
}
И затем замените for for сверху:
Letter.stream().forEach(l -> foo(l));
Является ли этот подход ОК или имеет некоторые недостатки в дизайне или производительности? Кроме того, почему у перечислений нет метода stream()?