talosのプログラミング教室

Java Silver合格への道 ~可変長引数~

スポンサーリンク

こんにちは。たろすです。

今回は可変長引数についてです。

可変長引数の使い方

public class Sample {

	public void method(int... values) {
		for (int value : values) {
			System.out.println(value);
		}
		System.out.println("------------");
	}
}

メソッドの引数に注目してください。

「int... values」と書かれています。

引数の型の直後に「...」を付けることで可変長引数にすることができます。

可変長引数として渡された引数は配列として扱われます。

このメソッドを実際に使ってみましょう。

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Sample sample = new Sample();
		sample.method(1, 2, 3);
		sample.method(1, 2, 3, 4, 5);
	}
}
// 出力
1
2
3
------------
1
2
3
4
5
------------

引数に好きなだけ値を渡すことができます。

制約

可変長引数以外の引数も受け取る場合は、可変長引数が最後の引数になるようにしなければなりません。

例えば以下のようなプログラムはコンパイルエラーになります。

public void method(int... values, String str) { }

以下のように直しましょう。

public void method(String str, int... values) { }

可変長引数を二つ以上受け取るのもNGです。

おわりに

今回は可変長引数について説明しました。

配列を渡せば済む話なので、あまり使われているところは見たことありません。