可变参数
在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
其实这个书写完全等价于
修饰符 返回值类型 方法名(参数类型[] 形参名){ }
后面的这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。
JDK1.5 以后。出现了简化操作。...
Demo:
1 public class ChangeArgs { 2 public static void main(String[] args) { 3 int[] arr = { 1, 4, 62, 431, 2 }; 4 int sum = getSum(arr); 5 System.out.println(sum); 6 // 6 7 2 12 2121 7 // 求 这几个元素和 6 7 2 12 2121 8 int sum2 = getSum(6, 7, 2, 12, 2121); 9 System.out.println(sum2); 10 } 11 12 /* 13 * 完成数组 所有元素的求和 原始写法 14 15 public static int getSum(int[] arr){ 16 int sum = 0; 17 for(int a : arr){ 18 sum += a; 19 } 20 21 return sum; 22 } 23 */ 24 //可变参数写法 25 public static int getSum(int... arr) { 26 int sum = 0; 27 for (int a : arr) { 28 sum += a; 29 } 30 return sum; 31 } 32 }
Tips:上述add方法在同一个类中,只能存在一个。因为会发生调用的不确定性
注意事项:
1. 使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数
2. 使用格式:定义方法时使用 修饰符 返回值类型 方法名(数据类型...变量名){}
3.可变参数的原理:可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递),1,2...多个
4. 一个方法的参数列表,只能有一个可变参数
5. 如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
可变参数的特殊(终极)写法
public static void method(Object...obj){
}