java不定参数

参考博客http://tianlihu.iteye.com/blog/370854java

public static void main(String[] args) {
       t1();
       t1("a", "b", "c");
   }

   private static void t1(String... strs) {

       System.out.println(strs.getClass());
       System.out.println(strs.length);
       for (String str : strs)
           System.out.println(str);

   }

输出结果以下数组

class [Ljava.lang.String;
    0
    class [Ljava.lang.String;
    3
    a
    b
    c

事实上,String...表明的是String类型的数组,鼠标放到str的时候eclipse就会提示。eclipse

不定参数感受就是用了一个装饰器,jdk先将参数组装成一个数组,而后再执行方法体中的内容,由于即便调用时无参,但执行时是有参的。code

须要注意到的是blog

  • 不定参数只能写到参数列表的后面ip

  • 若是存在去掉不定参数后签名相同的重载方法,看起来好像均可以调用,但会优先调用固定参数的方法get

public static void main(String[] args) {
        t2(1);//immutable args...
        t2(1, "a", "b", "c");//mutable args...
    }
    
    private static void t2(int a, String... strs) {
        System.out.println("mutable args...");
    }
    
    public static void t2(int a) {
        System.out.println("immutable args...");
    }
相关文章
相关标签/搜索