可变参数
System.out.println("%d", n);System.out.println("%d %s", n, "widgets");
在上面两个println 方法中,尽管一个调用包含两个参数,另一个调用包含三个参数,但他们调用的是用一个方法。
printf 方法是这样定义的
class PrintStream {public PrintStream printf(String fmt, Object... args) {return format(fmt, args);}}
上面的 Object 后的省略号 … 是Java代码的一部分,它表示这个方法可以接收任意数量的对象。
用户自定义可变参数方法
参数可以为任意类型,甚至是基本类型,该参数类型与数组完全一样。
/* double... values 等于 double[]数组 */public static double max(double... values){double largest = Double.NEGATIVE_INFINITY;for(double d : values){if(v > largest) largest = v;return largest;}}double m = max(1.0, 4.8, 2.8);
