- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列)
配列を渡す場合の注意点
このQ&Aのポイント
- Javaの配列を渡す場合、初期化された配列をそのまま渡すことはできますが、{}で新しく配列を生成することはできません。
- 値の入った配列を渡す場合は、事前に配列を初期化してから渡す必要があります。
- 例えば、int[] a = {0,1,2,1,0};という配列がある場合、test(a);のように渡す必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
このように書きます。 test(new int[] {0,1,2,1,0}); 配列を宣言と同時に初期化する場合は、 int[] a = {0,1,2,1,0}; と書けますが、省略せずに書くならば int[] a = new int[] {0,1,2,1,0}; となります。 逆に、配列を宣言と同時に初期化する場合以外(今回のメソッド呼び出しもそうですが)は省略できません。そういう意味で int[] a = {0,1,2,1,0}; という省略した書き方はむしろ特殊なものだといえます。 new int[5] の場合もそうですが、一般に配列を new するときには何型の配列なのか明確にコンパイラに伝えてやる必要があります。例えば {null, null, null} では Object[] なのか String[] なのか XXX[] なのか分かりませんよね。ちゃんと new Object[] {null, null, null} とか new String[] {null, null, null} というふうに書いてやる必要があるわけです。 ではなぜ同時に初期化する場合だけ省略できるかというと……(もう言わなくてもわかりますよね?)
お礼
詳しいご解説ありがとうございます。 たしかに冷静に考えてみると型情報がないですね。 すっきりしました。 またよろしくお願いいたします。