Javaの魅力の1つに、名前空間の効率の良さがあります。パッケージ、クラス、メソッドと構造化することで、名前の衝突を防ぐだけではなく、無名クラスのように、必要がなければ名前を付けなくても活用できる仕掛けを持っているからです。名前を付けなければ、当然、名前の衝突は起こりませんし、ネーミングルールを気にする必要もありません。
これに対して、メソッドの引数として配列を渡すときには、配列への参照を渡すために、名前をつける必要があると思い込んでいる方が多いようですが、実は、配列にも無名で利用を可能とする構文があります。
例えば、int型の値(リテラル、変数)から成る配列を受け取るメソッドであれば、
メソッド名(new int[] {int型の値, int型の値, ..., int型の値});
という無名配列構文で呼び出すことができます。例として、以下のようなプログラムがあるとしましょう。
このプログラムでは、配列の名前(参照変数)であるaとbは、メソッドの引数として、配列への参照を与えるためだけに用いられています。これらを無名配列構文で書き直してみましょう。メソッド側は変わりません。
ご覧の通り、一時的に用いていた配列の名前が消え、すっきりしているだけではなく、名前の重複や命名ミスによるトラブルからもフリーになります。利用が可能な場面では常に活用したい構文といえるでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.