java 枚举内嵌枚举
假设我们有以下代码:
enum Case {
CASE_ONE,
CASE_TWO,
CASE_THREE;
private static final int counter;
private int valueDependsOnCounter;
static {
int sum = 0;
for(int i = 0; i<10; i++) {
sum +=i;
}
counter = sum;
}
Case() {
this.valueDependsOnCounter = counter*counter;
}
}
您认为编译和运行代码的结果是什么?
- 编译器错误
- 运行时错误
- 运行正常,但valueDependsOnCounter具有奇怪的值
- 没关系
稍加思考。 (扰流块)答案是按以下顺序的第8个字母:bdcadcbabcad。
为了阐明这一点,有必要检查以下内容:
A.类中静态初始化的顺序:
- 静态viaribales出现的顺序
- 静态块出现的顺序
- 实例变量的出现顺序
- 构造函数