带有case常量的switch语句作为参数不会编译

时间:2015-12-22 20:42:53

标签: java

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;
        }
    }

这与所谓的“编译时间”常量有关吗?

1 个答案:

答案 0 :(得分:0)

y参数可以将多个值传递给方法调用,因此它不是常量。它甚至可能是0值,使其与case x

相同