5.2.3 形参个数可变的方法
从JDK1.5
之后,Java
允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参
的类型后增加三点(…
),则表明该形参可以接受多个参数值,多个参数值被当成数组
传入。
可变参数和数组参数的区别
数组形式的形参可以处于形参列表的任意位置,
**个数可变的形参只能处于形参列表的最后
**。
变参总结
- 个数可变的形参只能处于形参列表的
最后
- 一个方法中最多只能包含一个个数可变的形参。
- 个数可变的形参本质就是一个数组类型的形参,因此调用包含个数可变形参的方法时,该个数可变的形参既可以传入多个参数,也可以传入一个数组。
- 遍历个数可变的形参和遍历数组的方式一样
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public class Varargs { public static void test(int a, String... books) {
System.out.println(a); System.out.println("----------------- 通过 forecah 遍历变参 --------------"); for (String tmp : books) { System.out.println(tmp); } System.out.println("---------------- 通过 for 遍历变参 ----------------"); for (int i = 0; i < books.length; i++) { System.out.println(books[i]); } System.out.println("################################"); }
public static void main(String[] args) { test(5, "Hello", "World"); test(1, new String[] { "Hello", "World" }); } }
|
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 5 ----------------- 通过 forecah 遍历变参 -------------------------- Hello World ---------------- 通过 for 遍历变参 ---------------------------- Hello World ################################ 1 ----------------- 通过 forecah 遍历变参 -------------------------- Hello World ---------------- 通过 for 遍历变参 ---------------------------- Hello World ################################
|
可以看到遍历变参,就跟遍历数组一模一样