各位小伙伴们大家好,这次小编要介绍的是Java当中的可变参数,什么是可变参数呢?就是可以变化的参数呀。什么时候可以用可变参数呢?当方法的参数列表数据类型已经确定,但是参数个数不确定的时候,是可以使用可变参数的,接下来小编要讲的是使用格式。
使用格式:
修饰符 返回值类型 方法名(数据类型......变量名){}
可变参数的原理:
可变参数底层是一个数组,根据传递参数的个数不同,会创建出不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递)也可以是多个。
下面小编就用代码来介绍一下使用可变参数的优势。
代码一,定义一个方法,用来计算两个int类型的整数相加。
public class a {
public static void main(String[] args) {
int i= add(2,3);
System.out.println(i);
}
//定义一个方法,计算两个int类型的整数和
public static int add(int a,int b) {
return a+b;
}
}
那么问题来了,如果你要定义三个,四个,五个......n个整数先加呢?我们可以很好的利用可变参数来解决。
public class a {
public static void main(String[] args) {
int i= add(2,3,30,100,678,234);
System.out.println(i);//结果1047
}
public static int add(int...arr){//可变参数
System.out.println(arr);//[I@15db9742 底层构造是一个数组,传递参数的个数不同,会创建出不同长度的数组,来存储这些参数传递的参数个数
/* add();就会创建一个长度为0的数组,new int[0]add(10);就会创建一个长度为1的数组,存储传递过来的参数new int[]{10},如果你要存储多个数据,其原理也是一样的,其实和数组差不多*/
System.out.println(arr.length);//数组长度6
int sum=0;
//遍历数组,获取数组中的元素
for(int i:arr) {
sum+=i;
}
return sum;
}
}
根据上面的代码可知,利用可变参数,我们不需要定义多个方法,只需要定义一个方法就可以进行多个相同数据类型求和的计算。
还有一个可变参数的终极写法,可以添加不同的数据类型:
public static void method(Object...obj){}
接下来小编要介绍的是一些注意事项
1.一个方法的参数列表,只能有一个可变参数
public static void method(int...a,String...b){},这种写法是错误的。参数列表里面只能有一个可变参数。
2.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
public static void method(,int...a,String b,double c,int d){}写法错误,可变参数只能写在末尾哦。
关于可变参数,小编就先说到这里,希望这篇文章可以帮到大家,也欢迎给位小伙伴不错和纠错。