【Java】Duplicate local variable 変数名 解決方法

あるプログラムを実行したとき、

Duplicate local variable ○○

というエラーメッセージの解決方法を紹介します。

○○には、変数名が入ります。

原因

変数を宣言したのち、再度同じ変数を宣言した場合に発生するエラーとなります。

public class Main {
    public static void main(String[] args) {
        int num = 0;
        //処理
        int num = 1; 
    }
}

また、型名が異なっても変数名が同じ場合、同様なエラーとなります。

public class Main {
    public static void main(String[] args) {
        int num = 0;
        //処理
        long num = 0L;
    }
}

解決方法

変数名を見直し、同じ名前の変数名で複数回宣言していないか確認することになります。

public class Main {
    public static void main(String[] args) {
        int num = 0;
        //
        num = 1; // int num = 1から num = 1へ
    }
}

上記は、5行目で宣言から値の代入にすることで、エラーメッセージを回避しています。

宣言と値の代入

解決方法ででてきた、宣言と値の代入について説明すると,,,

変数の宣言とは、変数を扱う際に型と変数を定義することです。

変数の宣言と同時に値を代入することもできます。

値の代入とは、宣言した変数に値を入れることを指します。

とくに、変数を宣言した後、最初の値の代入を初期化といいます。

//変数の宣言
int num;
String str;
//変数の宣言かつ初期化
int number = 0;
String greeting = "Hello";
//値の再代入
number = 1;