下面的代码就会报编译错误,(Constant expression required)
public class SwitchTest {
public int jj = 0;
public static final int bn ;
static {
bn = 0;
}
@Test
public void switchTest() {
final int h = 2;
g:
for (int i = 0; i < 100; i++) {
break g;
}
aa:
switch (1) {
case 1:
System.out.println(1);
switch (jj) {
case bn:
System.out.println(2);
break aa;
}
System.out.println(3);
}
}
}
结论:case后面只能接常量,但是类常量只接受一次性赋值的,不接受static块赋值的。