Java 变长参数 引起的错误

看下面的代码:

Integer[] values = {1, 2, 3, 4, 5}; 
List<Integer> list = Arrays.asList(values); 
    
int[] numbers = {1, 2, 3, 4, 5};
List<int[]> intList = Arrays.asList(numbers);

为什么第二个变成了 int 数组的 List?看 Arrays.asList的方法:

@SuppressWarnings("varargs")
public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}

它的参数是一个变长参数,可以认为是一个数组。 上面例子第一种情况它认为是 Integer数组,里面包含1到5,5个元素,第二种情况,它认为你传入的是int[][], 并且只包含一个元素,那就是int[]. 对于primary 类型,变长参数估计都是这么理解的。

标签: none

仅有一条评论

  1. I toss-up prezzo in italia most the cholesterol for cialis prezzo in italia risk often not.

添加新评论