在以下代码中:
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”的谷歌,但到目前为止,所有出现的都是人们寻求解决问题的帮助(通常解决方案是重命名变量之一),而不是讨论问题本身。