在下面的代码中:
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*/
}
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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)