今天看到Arrays 中asList 的用法,遇见了一些问题,现在自己已经解决
输出结果是
[[I@c17164]
[1, 2, 3, 4]
[1, 2, 3, 4]
也就是说Arrays.asList()并没有返回一个{1,2,3,4}的List
原因在于,JDK5中asList接受变长参数表了,把intArray作为单独的参数传递给asList方法的时候,编译器会把它当作一个Object处理,于是返回了只有一个元素的List,而这个元素应该就是指向int[]的引用。
解决方法之一是把intArray声明为Integer[],即
Integer[] intArray = new Integer[]{new Integer(1), new Integer(2), new Integer(3), new Integer(4)};
//或者直接一开始就添加List<Integer> list = new ArrayList<Integer>();
list=addArrays.asList(1,2,3,4)
List<Integer> listFromArray2 = Arrays.asList(intArray2);
System.out.println(listFromArray2);
List<Integer> listFromArray2 = Arrays.asList(intArray2);
System.out.println(listFromArray2);
这样就能看到预期结果了