可变参数
概念
JDK5.0出现的新特性。将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法.
好处:
提高代码的重用性和维护性
语法:
修饰符 返回类型 方法名(参数类型… 参数名){
… …
}
注意:使用时,将可变长度的参数当做数组使用,等价于:
修饰符 返回类型 方法名(参数类型[] 参数名){
… …
}
(所以可变参数不可重载成一维数组)
代码实现
class VarArgsDemo
{
public static void main(String[] args)
{
int[] nums = {1,2,3,4,5};
int result = getSum(nums);
//int result = getSum();
System.out.println(result);
}
public static int getSum(int ... nums){
int result = 0 ;
for(int ele : nums)
{
result = result + ele;
}
return result;
}
}
反编译
通过反编译可以看出,其实方法的可变参数也是一个语法糖;
方法的可变参数其底层是一个数组类型;所以无法进行可变参数的方法重载。
可变参数必须作为方法的最后一个参数,避免参数的歧义性;
推论:方法最多只有一个可变参数;