参数数量可变

public PrintStream printf(String fmt, Object ... args) {
return format(fmt, args);
}
这里的省略号 ...是 Java 代码的一部分, 它表明这个方法可以接收任意数量的对象(除fmt参数之外)。实际上, printf 方法接收两个参数, 一个是格式字符串, 另一个是 Object[ ]数组, 其中 保存着所有的参数(如果调用者提供的是整型数组或者其他基本类型的值, 自动装箱功能将把它们转换成对象)。 现在将扫描 fint 字符串, 并将第)个格式说明符与 args[i] 的值匹配起来。

其功能为计算若干个数值的最大值:
用户自己也可以定义可变参数的方法,并将参数指定为任意类型,甚至是基本类型。
public static double max(double ... values)
{
double largest = Double.NEGATIVE_INFINITY;
for(double v : values) if (v > largest) largest= v;
return largest;
}
编译器将 new double[] {3.1, 40.4, -5} 传递给 max方法。
允许将一个数组传递给可变参数方法的最后一个参数。 例如:
System.out.printf("%d %s", new Object[]
{new Integer(l), "widgets" }) ;
因此, 可以将已经存在且最后一个参数是数组的方法重新定义为可变参数的方法, 而不会破坏任何已经存在的代码。