Альтернативой Language.values()
является использование EnumSet
:
for (Language l : EnumSet.allOf(Language.class))
{
}
Это полезно, если вы хотите использовать его в API, который использует интерфейсы коллекций вместо массива. (Это также позволяет избежать создания массива для начала ... но вместо этого ему нужно выполнять другую работу. Конечно, это все о компромиссах.)
В данном конкретном случае, values()
, вероятно, более уместно, но стоит хотя бы знать о EnumSet
.
РЕДАКТИРОВАТЬ: Судя по другому комментарию, вас беспокоит переопределение toString()
- вместо этого позвоните name()
:
for (Language l : Language.values())
{
String name = l.name();
// Do stuff here
}