在以下代码中:
private static void example() {
String inputString = "test";
switch (inputString) {
case "test":
String outputString = "The string said test";
case "not test":
String outputString = "The string did not say test";
}
/*Do stuff with ouputString*/
}
Run Code Online (Sandbox Code Playgroud)
Eclipse 突出显示Case "not test"
错误后的行Duplicate local variable outputString
。但是,由于它们位于switch
语句的不同分支中,因此它们实际上并不冲突,因为一次只能有一个有效。
显然,在这种情况下,我可以通过将outputString
声明移到switch
语句之外来解决这个问题。但是,在更复杂的程序中,解决方案可能并不那么简单。
这仅仅是 Eclipse 为防止糟糕的编程技术而抛出的错误,还是实际的 Java 错误?
我对 Java 很陌生,所以如果这是一个新手问题,我很抱歉 - 我有一个关于“重复局部变量 Java”的谷歌,但到目前为止,所有出现的都是人们寻求帮助来解决问题(通常的解决方案是重命名其中一个变量),而不是讨论问题本身。
java中switch语句的每种情况下的变量范围都是整个switch语句。
您可以通过添加大括号来创建更多嵌套范围,如下所示:
switch (inputString) {
case "test": {
String outputString = "The string said test";
break;
}
case "not test": {
String outputString = "The string did not say test";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3969 次 |
最近记录: |