Arrays
类包含一个将数组转换为列表的函数。当我将 Integer
数组转换为 ArrayList
时,它会抛出异常。
Integer[] array = new Integer[]{2, 4, 3 , 9};
ArrayList<Integer> test = (ArrayList<Integer>) Arrays.asList(array);
当我转换Integer
列表时,Arrays.asList(array)
返回Integer
类型的List
code> 到 ArrayList
,会抛出异常
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
ArrayList
实现了 List
接口(interface),那么为什么会抛出异常呢?
当我尝试使用 List
引用变量直接捕获对象时,效果很好。
最佳答案
Arrays.asList
返回 List
的自定义解释,它不是 java.util.ArrayList
,而是一个 AbstractList
是固定大小的。
您需要将所有内容包装在一个新列表中:
List<Integer> newList = new ArrayList<>(Arrays.asList(array));
关于Java:将数组转换为列表异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222111/