final int a=2;
final int b;
b=3;
switch(num){
case a : // Legal
case b : //Illegal
}
案例 a是合法的,但案例 b是非法的。
谁能解释为什么?
final int a=2;
final int b;
b=3;
switch(num){
case a : // Legal
case b : //Illegal
}
案例 a是合法的,但案例 b是非法的。
谁能解释为什么?
switch语句需要常量表达式大小写标签。
虽然b在代码执行后是一个常量(因此final有效),但它不是 JLS 含义的常量表达式:https://docs.oracle.com/javase/specs/jls/se8/html/jls-15。 html#jls-15.28