JUnit等を使っている人なら、よく見かける&使っているコード。
引数をいくらでも受け付けられる不思議だけど便利なメソッドです。
可変長引数を持つメソッドを作成するサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class VarMethodTest { public static void varMethod(String... strs) { StringBuffer sb = new StringBuffer(); for(String str : strs) { sb.append(str).append("..."); } System.out.println(sb.toString()); } public static void main(String[] args) { varMethod("1"); varMethod("1","2"); varMethod("1","2","3"); varMethod("1","2","3","4"); varMethod("1","2","3","4","5"); } } |
実行結果
1 2 3 4 5 | 1... 1...2... 1...2...3... 1...2...3...4... 1...2...3...4...5... |
サンプルの解説
可変長引数を持つメソッドの書き方
1 | 修飾子 メソッド名(クラス名... 変数名) |
これで、この変数に対して、可変長でアクセスすることができます。
可変長引数にした変数の型はどうなるの?
可変長引数にした変数は、配列になります。
1 | クラス名... 変数名 → クラス名[] 変数名 |
サンプルについて
可変長引数を持つvarMethodメソッドに対して、mainメソッドより5パターンの引数をもって、アクセスしています。
varMethodメソッドでは、可変長引数 strsより値を取得。そのまま値を出力しています。
String…にて宣言していますので、strsは、String配列になります。