次のコードでは:
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
一度に 1 つしか有効にできないため、実際には競合していません。
明らかに、この場合、宣言をステートメントのoutputString
外に移動することで問題を回避できます。switch
ただし、より複雑なプログラムでは、解決策はそれほど単純ではない場合があります。
これは単に、不十分なプログラミング手法を防ぐために Eclipse によってスローされたエラーですか、それとも実際の Java エラーですか?
私はJavaに非常に慣れていないので、これが初心者の質問である場合はお詫びします-「ローカル変数Javaの複製」についてグーグルで検索しましたが、これまでのところ、問題を解決するための助けを求めている人だけが見つかりました(通常の解決策は、変数の 1 つの名前を変更することです)、問題自体の議論ではありません。