《形参个数可变的方法》

 1 /*
 2 形参个数可变的方法:
 3 */
 4 public class Varargs 
 5 {
 6     //定义了形参个数可变的方法。
 7     public static void test(int a,String... books)
 8     {
 9         //books被当成数组处理。
10         for(String tmp:books)
11         {
12             System.out.println(tmp);
13         }
14         System.out.println(a);
15     }
16     public static void main(String[] args) 
17     {
18         //调用test方法。
19         test(5,"疯狂Java讲义","轻量级Java EE 企业应用实践");
20     }
21 }
22 /*
23 执行上面的程序输出:
24 ------------------------------
25 疯狂Java讲义
26 轻量级Java EE 企业应用实践
27 5
28 ------------------------------
29 
30 从test()的方法体代码来看,形参个数可变的参数本质就是一个数组参数,也就是说,下面两个方法签名的效果完全一样。
31 
32 (1)//以可变个数参数来定义方法
33 public static void test(int a,String... books);
34 (2)//下面采用形参数组来定义方法
35 public static void test(int a,String[] args);
36 这两种形式都包含了一个名为books的形参,在两个方法的方法体内都可以把books当成数组来
37 处理,但区别是调用两个方法时存在差别,对于以可变形参的形式定义的方法,调用方法时更加简洁,
38 如下面代码所示:
39 
40 test(5,"疯狂Java讲义","轻量级Java EE企业应用实践");
41 传给books参数实参值无须是一个数组,但如果采用数组形参来声明方法,调用时则必须传给该形参一个数组,如下所示:
42 
43 //调用test()方法时传入一个数组
44 test(5,new String[]{"疯狂Java讲义","轻量级Java EE企业应用实践"});
45 
46 注意:数组形式的形参可以处于形参列表的任意位置,单个数可变的形参只能处于形参列表的最后,也就是说;
47 一个方法中最多只能有一个个数可变的形参。
48 */
原文地址:https://www.cnblogs.com/sun-/p/5447114.html