switch语句的一个角色是它们接受常量作为参数但是观察下面的代码我们可以清楚地注意到编译器在标记行上报告的编译错误
public void testSwitch(final int y){
final int x= 0;
int tester = 9;
switch(tester){
case x:
break;
case y://compilation error here case constant must be constant expression
break;
}
}
这与所谓的“编译时间”常量有关吗?
答案 0 :(得分:0)
y
参数可以将多个值传递给方法调用,因此它不是常量。它甚至可能是0
值,使其与case x