• ベストアンサー

配列を引数にするとき

↓のようなメソッドのある時に public void method(int[] arr){} ↓のようには実行出来ると思うのですが、 int[] a = {1,2,3}; method(a); 引数に入れる時に、直接値を入れられないでしょうか? イメージ的には、 method({1,2,3}); みたいに。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaguechat
  • ベストアンサー率85% (47/55)
回答No.1

配列の生成と初期化を一度に書く場合は[]に要素数を書かずにその後に初期値を{}で括って与える。 つまり、 method(new int[]{1, 2, 3}); ただしこの書き方だとint a=...とするのと違い、生成した配列への参照はmethodメソッド側しか知らないので、 呼び出した側でこの配列を後から参照するのなら何らかの方法でmethodから知らせてもらう必要がある。 また、 int[] a = {1,2,3}; という書き方も int[] a = new int[]{1,2,3}; の省略形。宣言から生成、初期化まで一緒にやる場合はnew 型名[]を省略できる。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

お望みのこととは少し違うかもしれませんが、メソッドの方を public void method(int... arr) {} のように可変長引数を使った形にすれば、呼び出し側では method(1, 2, 3); のように書けるようになります。

参考URL:
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/language/varargs.html
すると、全ての回答が全文表示されます。
  • vaguechat
  • ベストアンサー率85% (47/55)
回答No.2

連投で申し訳なし。 > int a=...とするのと違い は int[] a=...とするのと違い の誤り。 methodに与えるためだけで、呼び出し側で再利用することがないのなら、 配列への参照を保持するために変数を定義しなくていいのでmethod(new int[]{1, 2, 3});の書き方は便利。

すると、全ての回答が全文表示されます。

関連するQ&A