1. ホーム
  2. java

[解決済み] Java コンストラクタで int 配列を初期化する

2022-03-06 04:26:28

質問

あるクラスがあり、そのクラスにはこんなものがあります。

 //some code
 private int[] data = new int[3];
 //some code

そして、私のコンストラクタで

public Date(){
    data[0] = 0;
    data[1] = 0;
    data[2] = 0;
}

このようにすると、すべてOKです。デフォルトのデータ値が初期化されますが、代わりにこうすると。

public Date(){
    int[] data = {0,0,0};
}

と書かれています。

Local variable hides a field

なぜ?

コンストラクタ内で配列を初期化する最も良い方法は何でしょうか?

どのように解決するのですか?

private int[] data = new int[3];

これはすでに配列の要素を 0 に初期化しているため、 コンストラクタで再度繰り返す必要はありません。

コンストラクタの中ではそうなっているはずです。

data = new int[]{0, 0, 0};