可變參數如果傳入基本類型數組會怎麼樣?

可變參數如果傳入基本類型數組,JVM會當整個數組當做一個參數來處理。如果傳入的是封裝類型的數組,那麼數組中內容會被拆分成多個參數傳入方法。代碼如下: 

    public static void main(String[] args) {

        Integer[] test = new Integer[] {1, 2, 5};
        int[] test2 = new int[] {1, 2, 5};

        // public static <T> List<T> asList(T... a)
        List result1 = Arrays.asList(test);
        List result2 = Arrays.asList(test2);

        System.out.println("result1:" + result1);
        System.out.println("result1 size:" + result1.size());
        System.out.println("result2:" + result2);
        System.out.println("result2 size:" + result2.size());
    }

結果:

result1:[1, 2, 5]
result1 size:3
result2:[[I@4554617c]
result2 size:1

可變參數還可以這麼玩兒,傳入不同的參數類型。

public <T> void printMsg( T... args){
    for(T t : args){
        Log.d("測試","t is " + t);
    }
}

printMsg("111",222,"aaaa","2323.4",55.55);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章