为什么case常量必须是switch中的编译时间常量

sar*_*nan 1 java

为什么case常量必须是switch中的编译时间常量?

Jon*_*eet 5

一方面,字节码格式要求它是一个常量.

此外,如果它是常量,编译器可以检查所有值是否不同 - 您不能两次使用相同的情况.如果值可以在执行时更改,则无法执行此操作.

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