こんにちは、さるまりんです。
今日はJavaの小ネタです。
Javaのメソッドは可変長の引数を取ることができます。
引数の数が決まっていない引数です。
引数の型の後ろに...
(ピリオドを3つ)つけます。
次のメソッドは複数のint
型の引数をとり、その合計を計算して返却します。
public static int addAll(int... is) {
int total = 0;
for (int i: is) {
total += i;
}
return total;
}
次のコードで呼び出すと
int total = addAll(1, 5, 8, 99, 3, -5);
System.out.println("total is " + total);
出力はこうなります。
total is 111
さっきのメソッドaddAll()
は全てint
型の引数を取っていましたが、Object
クラスの引数にするとなんでも取れるようになります。
こんな感じです。
public static String concatAll(Object... os) {
StringBuilder sb = new StringBuilder();
String space = "";
for (Object o: os) {
sb.append(space).append(o);
space = " ";
}
return sb.toString();
}
受け取った引数をスペース区切りで繋いでできた文字列を返却しています。
次のコードで実行すると
String str = concatAll("I am", "salumarine.", 'I', "get up at", 6, "in the morning.", "That's", true);
System.out.println(str);
こんな出力になります。
I am salumarine. I get up at 6 in the morning. That's true
受け取っている引数の型はのはString
、char
、int
、boolean
と様々ですが特殊な処理をせずに全て繋いで文字列にしてくれました。
Object
クラスでもらってどんな処理をするのかは考えどころですが、便利な局面もあるかもしれないです。
読んでくださってありがとうございました。
それではまた!