Я просто понял, что константа enum в Java, похоже, содержит все константы перечисления того же типа.
Например, следующий код является законным:
enum State {
enable, disable, deleted;
}
class Test {
public static void main(String[] args) {
for ( State s : State.enable.disable.values() ) {
System.out.println(s);
}
}
}
Я был очень удивлен, когда увидел, что выход:
enable
disable
deleted
Не контр-интуитивно или даже нелогично, что константа enable
содержит константу disable
, которая в свою очередь содержит все константы enum State
?
Какое возможное отношение к этому языковому дизайну?