可变参数如果传入基本类型数组会怎么样?

可变参数如果传入基本类型数组,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);

 

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