java中可变长参数

 1 **
 2  * Created by Lenovo on 2017/12/10.
 3  * java中可变长参数
 4  */
 5 public class reflect04 {
 6 
 7     //m1有一个int类型的可比变长参数
 8     //m1在调用的时候实参可以是0-N个
 9     public static void m1(int... a){
10         System.out.println("int型可变长参数执行...."+a);
11     }
12 
13     //如果有可以精确匹配的方法则调用该方法,不会再执行可变长参数的那个方法
14     public static void m1(int a){
15         System.out.println("精确匹配执行....."+a);
16     }
17 
18     //可变长参数可以等同看做一个数组
19     public static void m2(String... args){
20         for(int i=0;i<args.length;i++){
21             System.out.println("m2都喜欢的运动如下:"+args[i]);
22         }
23     }
24 
25     public static void m3(Class... args) throws Exception{
26 
27         for(int i=0;i<args.length;i++){
28             Class arg = args[i];
29             System.out.println(arg.newInstance());
30         }
31     }
32 
33     //可变长参数只能出现一次,并且只能出现在所有参数的最后一位
34     //错误实例:
35     //public static void m4(String... args,int i){}
36     public static void main(String[] args) throws Exception {
37 
38         //执行m1
39         m1(1);      //调用精确匹配的m1方法
40         m1(1,2);
41         m1(1,2,3);
42         m1(1,2,3,4);
43 
44         //执行m2
45         m2("旅游","看电影","游泳","打球");
46 
47         //执行m3
48         m3(Date.class,Employlee.class);
49 
50         //m1输出
51         //m1精确输出:精确匹配执行.....1
52         //int型可变长参数执行....[I@330bedb4
53         //int型可变长参数执行....[I@2503dbd3
54         //int型可变长参数执行....[I@4b67cf4d
55 
56         //m2输出
57         //m2都喜欢的运动如下:旅游
58         //m2都喜欢的运动如下:看电影
59         //m2都喜欢的运动如下:游泳
60         //m2都喜欢的运动如下:打球
61 
62         //m3输出
63         //Sun Dec 10 21:59:58 CST 2017
64         //空参构造方法执行.....
65         //Employlee{name='null'}
66     }
67 }

 

posted @ 2017-12-10 22:13  追逐新梦想  阅读(438)  评论(0编辑  收藏  举报