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 }