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...");
    }
相關文章
相關標籤/搜索