引数として配列を渡すときは無名配列構文が有効JavaTips 〜Javaプログラミング編

» 2006年10月18日 10時00分 公開
[平野正喜@IT]

 Javaの魅力の1つに、名前空間の効率の良さがあります。パッケージ、クラス、メソッドと構造化することで、名前の衝突を防ぐだけではなく、無名クラスのように、必要がなければ名前を付けなくても活用できる仕掛けを持っているからです。名前を付けなければ、当然、名前の衝突は起こりませんし、ネーミングルールを気にする必要もありません。

 これに対して、メソッドの引数として配列を渡すときには、配列への参照を渡すために、名前をつける必要があると思い込んでいる方が多いようですが、実は、配列にも無名で利用を可能とする構文があります。

 例えば、int型の値(リテラル、変数)から成る配列を受け取るメソッドであれば、

 メソッド名(new int[] {int型の値, int型の値, ..., int型の値});

という無名配列構文で呼び出すことができます。例として、以下のようなプログラムがあるとしましょう。

配列を生成し、メソッドに渡すプログラム(改良前) 配列を生成し、メソッドに渡すプログラム(改良前)

 このプログラムでは、配列の名前(参照変数)であるaとbは、メソッドの引数として、配列への参照を与えるためだけに用いられています。これらを無名配列構文で書き直してみましょう。メソッド側は変わりません。

配列を生成し、メソッドに渡すプログラム(改良後) 配列を生成し、メソッドに渡すプログラム(改良後)

 ご覧の通り、一時的に用いていた配列の名前が消え、すっきりしているだけではなく、名前の重複や命名ミスによるトラブルからもフリーになります。利用が可能な場面では常に活用したい構文といえるでしょう。

Profile

RunDog.org

平野正喜


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。