【发布时间】:2014-12-23 14:58:49
【问题描述】:
public class SwitchTest {
public static void main(String[] args) {
Integer i = new Integer(2) + new Integer(2);
switch(i){
case 4: System.out.println("foo"); break;
default: System.out.println("default"); break;
}
}
}
整数 i 未标记为最终值。 (我只是java的初学者。)
【问题讨论】:
-
i在这里不是“开关常数”,而是被打开的变量。它将打开当前值,就像if。 -
开关参数不必是最终的。您的环境中有一些不正确的地方。
-
你也可以写:
switch(new Random().nextInt())没有任何问题。但是你不能写case new Random().nextInt():,因为每个case都需要一个编译时常量。
标签: java switch-statement constants final