Java基础:可变参数

JDK 1.5 版本出现一个新特性:可变参数。

该特性可以解决某个方法参数数量不确定,但参数类型确定的情况

例如:当需要定义一个方法,该方法的功能是计算传入 int 类型的 n 个参数的和,由于计算的数量不确定,所以不便使用方法重载的方式,因为过于麻烦。

传统做法,利用数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class demo {
public static void main(String[] args) {
int[] arr = {1,5,6,8,7,5,1,5,69,81,8165,7};
int sum = sum(arr);
System.out.println(sum);
}

public static int sum(int[] num) {
int sum = 0;
for (int i : num) {
sum += i;
}
return sum;
}
}

这种方式虽然可以完成需求,但是还要预先将数据存储到数组中。

新做法,可变参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class demo {
public static void main(String[] args) {
int sum = sum(1,5,6,8,7,5,1,5,69,81,8165,7);
System.out.println(sum);
}

public static int sum(int... num) {
int sum = 0;
for (int i : num) {
sum += i;
}
return sum;
}
}

使用这种方式呢,其实就是 Java 内部帮我们将 n 个参数封装成数组了。

但是可变参数有一个注意事项就是,只能放到参数的最后一个,不然无法确认参数的对应性。

例如 public static int sum(int... num, int x),这样的话就无法确认哪一个是 x 了。

坚持原创技术分享,您的支持将鼓励我继续创作!