java中的可变形参

1.JavaSE 5.0 中提供了Varargs(variable number of arguments)机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。

//JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量

public static void test(int a ,String[] books);

//JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量

public static void test(int a ,String…books);

2.关于可变个数形参的说明

  1. 声明格式:方法名(参数的类型名 …参数名)
  2. 可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个
  3. 可变个数形参的方法与同名的方法之间,彼此构成重载
  4. 可变参数方法的使用与方法参数部分使用数组是一致的
  5. 方法的参数部分有可变形参,需要放在形参声明的最后
  6. 在一个方法的形参位置,最多只能声明一个可变个数形参
  7. 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。

3.举例说明

public void test(String[] msg){
	System.out.println(“含字符串数组参数的test方法 ");
	}
public void test1(String book){
	System.out.println(****与可变形参方法构成重载的test1方法		****");
	}
public void test1(String ... books){
	System.out.println("****形参长度可变的test1方法****");
	}
public static void main(String[] args){
	TestOverload to = new TestOverload();
	//下面两次调用将执行第二个test1方法
	to.test1();
	to.test1("aa" , "bb");
	//下面将执行第一个test方法
	to.test(new String[]{"aa"});
}