形参个数可变的方法(...)
从JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法制定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加三点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。下面程序定义了一个形参个数可变的方法。
public class Test{ //定义了形参个数可变的方法 public static void test1(int a,String...str){ for(String tmp:str) System.out.println(tmp); System.out.println(a); } //定义了数组形式的形参方法 public static void test2(int a,String []str){ for(String tmp:str) System.out.println(tmp); System.out.println(a); } public static void main(String []args){ test1(1,"tes1测试","test1测试","test1测试"); test2(2,new String[]{"test2测试","test2测试","test2测试"}); } }
两种测试方法都包含一个名为str的形参,在两个方法的方法体内都可以把str当成数组来处理,但区别是调用两个方法时存在差别,对于以可变形参的形式定义的方法,调用方法时更加简洁。但最后还要注意一点,数组形式的形参String []str可以处于形参列表的任意位置,而个数可变的形参String...str只能处于形参列表的最后。换句话说,一个方法中最多只能有一个长度可变的形参。