Day14_78_可变长参数

可变长参数

  • 可变长参数只能在形参列表的最后一个,且只能出现一次。

  • 代码实例

    import java.util.Date;

    public class 可变长参数 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {

         //m1方法传入的实参可以是0~n个,如果有参数精确匹配的方法,那么会去调用精确匹配的,就不会调用可变长参数了
         m1();
         m1(1);
         m1(2,3);
         m1(1,2,3,4,5);
    
        //m2方法是一个字符串类型的可变长参数 ,可以给可变长参数传入一个字符串数组
         String [] strs={"13点46分","4.9","星期五"};
         m2(strs);
    
        //调用m3方法
         Class c1=Class.forName("java.util.Date");
         Class c2=Class.forName("com.shige.Reflect.Employee");
    
          m3(c1,c2);
    
    
     }
    

    //m1方法种有一个int可变长参数 可变长参数只能在形参列表的最后一个,且只能出现一次。
    public static void m1(int...a){
    System.out.println(a);
    }

     public static void m1(int a){
         System.out.println(a);
     }
    
     public static void m1(int a,int b){
         System.out.println(a);
     }
    

    //m2 方法 是一个字符串类型的可变长参数
    public static void m2(String...strs){
    //可变长参数也有length属性
    for (int i = 0; i < strs.length; i++) {
    System.out.print(strs[i]+" ");

         }
     }
    

    //m3 方法是一个Class类型的可变长参数
    public static void m3(Class...args) throws IllegalAccessException, InstantiationException {
    for (int i = 0; i <args.length ; i++) {
    Class c=args[i];
    System.out.println(c.newInstance()); //调用无参数构造方法
    }

     }
    

    }

上一篇:Day14_83_反射机制获取某个特定属性的各部分


下一篇:day14