Array.asList()数组转list,很多已经写过需要避免的陷阱,参见:https://blog.csdn.net/chenleixing/article/details/43775127。
- int[] i={11,22,33};
- List intList=Arrays.asList(i); //intList中就有一个Integer数组类型的对象,整个数组作为一个元素存进去的
为什么是基本类型数组的时候,只能转出一个对象。看看asList的源码:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
/**
* @serial include
*/
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
private static final long serialVersionUID = -2764017481108945198L;
private final E[] a;
a = Objects.requireNonNull(array);
}
由于泛型的类型不能为基本类型,而int[] i是整体作为一个对象进行转换。转换后也是一个对象。