2011-03-02 58 views
1

为什么case常量必须是编译时间常量在开关中?为什么case常量必须是编译时间常量在开关中

+1

可能重复的[A开关Java问题:case表达式必须是常量表达式](http://stackoverflow.com/questions/4742660/a-switch-java-problem-case-expressions-must-be-constant-表达式) – 2011-03-02 12:19:06

回答

5

首先,字节码格式要求它是一个常数。

另外,如果它是一个常量,编译器可以检查所有的值是不同的 - 你不能有两次相同的情况。如果这些值在执行时可能会更改,则不能这样做。

如果你不想使用常量,最好使用if/else。

相关问题