参数数量可变的方法

在Java SE 5.0 以前的版本中,每个Java方法都有固定数量的参数。然而,现在的版本提供了可变的参数数量调用的方法(有时称为“变参”方法)

  • printf方法是这样定义的:
public PrintStream printf(String format, Object ... args) {
    return format(format, args);
}

这里的省略号...是java代码的一部分,他表明这个方法可以接受任意数量的对象(除fmt参数之外)

实际上,printf方法接受两个参数,一个是格式字符串,另一个是Object[]数组,其中保存着所有的参数(如果调用者提供的是正行数组或者其他基本类型的数组,自动装箱功能将把他们转换成对象)。现在讲扫描fmt字符串,并将第i个格式说明符与args[i]的值匹配起来。

用户也可以定义可变参数的方法:

public static double max (double... values)
{
    double largest = Double.NEGATIVE_INFINITY;
    for(double v : values) if (v > largest) largest = v;
    return largest;
}
原文地址:https://www.cnblogs.com/lanaiwanqi/p/10445660.html