java基础特性:可变参数
介绍
在 Java 5 中提供了变长参数,允许在调用方法时传入不定长度的参数。变长参数是 Java 的一个语法糖,本质上还是基于数组的实现,增加了编程一定的自由度。
举例
一、普通数组:
普通参数的用法如下:
// 普通数组的用法
public static int sum(int []nums){
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum+=nums[i];
}
return sum;
}
需要注意的是这种情况下使用sum(1,2,3)
是会发生错误,所以只能通过sum(new int []{1,2,3,4})
调用。
二、可变参数
可变参数的用法如下:
//可变参数的用法
public static int sum(int... nums){
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum+=nums[i];
}
return sum;
}
和数用数组作为参数相比,调用方法:sum(1,2)、sum(1,2,3)、sum(new int []{1,2,3,4})
都可以。
三、需要注意的点
-
一个函数只能有一个可变参数,同时定义两个可变参数会报错
-
当函数既有可变参数又有普通参数时,可变参数放在最后面
//如果有其他参数,可变参数需要放在最后 public static void fun(String str,int... nums){ if(nums!=null&&nums.length!=0) System.out.println(str+nums[0]);//只是举例无实际意义 }
-
可变参数可以不输入,如上面的
fun
函数,可以直接fun("nihao")
进行调用,但是如果参数是数组不能这样调用
总结
可变参数的本质还是利用数组进行传参,不过在使用方式上有些许不同,可以自己不使用,但是看到别人写这样的代码还是需要知道是什么。