何时在switch语句中声明引用?

pgs*_*rom 7 java switch-statement

令我惊讶的是这段代码很好用:

int i = 2;
switch(i) {
case 1:
    String myString = "foo";
    break;
case 2:
    myString = "poo";
    System.out.println(myString);
}
Run Code Online (Sandbox Code Playgroud)

但是永远不应该声明String引用?是不是每个案例下的所有变量都被声明无论是什么,或者如何解决?

Noo*_*ilk 7

好吧,它是关于括号(即范围).

可以说,更好的做法是写下你的陈述:

int i = 2;
switch(i) {
    case 1: {
        String myString = "foo";
        break;
    }
    case 2: {
        myString = "poo";
        System.out.println(myString);
    }
}
Run Code Online (Sandbox Code Playgroud)

(我现在不在Java编译器附近,但不应该编译).

  • 确实不会编译. (2认同)