从JDK1.5之后,Java允许定义形参可变的参数,从而为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参
当我们调用test方法时,books参数可以传入多个字符串作为参数值。从test的方法体代码来看,形参个数可变的参数其实
就是一个数组参数,也就是下面两种方法的效果一样:
//形参可变的方法
public static void test(int a,String ... books);
//数组形式定义形参
public static void test(int a,String[] books);
上面两种方法都可以把books作为数组处理,但区别是调用两个方法时存在差异,对于以可变形参的形式定义的方法,调用
方法更加简洁,传递给books参数的是参数值无须是一个数组,但以数组形式来声明的方法,调用时则必须传给该形参一个数组。
对比而言,也就是可变形参的方法更加简洁。实际上,即使是采用形参可变形式来定义方法,调用该方法时一样可以为个数可变
形参传入一个数组。最后需要指出的是,数组形式的形参可以处于形参列表的任何位置。但个数可变的形参只能处于形参列表
的最后。 也就是说,一个方法中最多只能有一个长度可变的形参。
的类型后增加三点(...),则表示该形参可以接受多个参数值,多个参数值被当成数组传入。下面定义了一个形参长度可变的方法
//定义了形参长度可变的方法
public static void test(int a,String ... books){
//books被方程数组
for(String book : books){
System.out.println(book);
}
System.out.println(a);
}
public static void main(String[] args) {
test(23, "我爱java","我爱Android","我爱编程");
}
当我们调用test方法时,books参数可以传入多个字符串作为参数值。从test的方法体代码来看,形参个数可变的参数其实
就是一个数组参数,也就是下面两种方法的效果一样:
//形参可变的方法
public static void test(int a,String ... books);
//数组形式定义形参
public static void test(int a,String[] books);
上面两种方法都可以把books作为数组处理,但区别是调用两个方法时存在差异,对于以可变形参的形式定义的方法,调用
方法更加简洁,传递给books参数的是参数值无须是一个数组,但以数组形式来声明的方法,调用时则必须传给该形参一个数组。
对比而言,也就是可变形参的方法更加简洁。实际上,即使是采用形参可变形式来定义方法,调用该方法时一样可以为个数可变
形参传入一个数组。最后需要指出的是,数组形式的形参可以处于形参列表的任何位置。但个数可变的形参只能处于形参列表
的最后。 也就是说,一个方法中最多只能有一个长度可变的形参。