回答:
Javaではvarargsと呼ばれ、構文は通常のパラメータのように見えますが、型の後に省略記号( "...")が付いています:
public void foo(Object... bar) {
for (Object baz : bar) {
System.out.println(baz.toString());
}
}
varargパラメータは常にメソッドシグネチャの最後のパラメータである必要があり、そのタイプの配列を受け取ったかのようにアクセスされます(Object[]
この場合など)。
以前の回答に書かれているように、それは(...)でvarargs
宣言されていますellipsis
さらに、値の型や参照型、あるいはその両方を混合して渡すことができます(google Autoboxing)。さらに、printArgsAlternate
以下のメソッドで示すように、メソッドパラメータを配列として使用できます。
public class VarargsDemo {
public static void main(String[] args) {
printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
}
private static void printArgs(Object... arguments) {
System.out.print("Arguments: ");
for(Object o : arguments)
System.out.print(o + " ");
System.out.println();
}
private static void printArgsAlternate(Object... arguments) {
System.out.print("Arguments: ");
for(int i = 0; i < arguments.length; i++)
System.out.print(arguments[i] + " ");
System.out.println();
}
}
Arguments: 3 true Hello! true 25.3 a X
Arguments: 3 true Hello! true 25.3 a X