枚举常量包含同一枚举类的所有枚举常量
我刚刚意识到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
State
这种语言设计背后的可能考虑因素是什么?