Java:将数组转换为列表异常

标签 java exception collections classcastexception

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/

相关文章:

Java RegEx 删除英文单词但排除一些单词

java - 发送 key Java 代码无法在 Mac 上运行

python - 套接字python中的异常列表

python - 如何检查 TypeError 是否针对 NoneType

c++ - 程序不进入__except block

java - 使用 ArrayList#trimToSize() 方法?

java - 如何在 netbeans (java) 中使用导入库中的类

collections - Cassandra 模式使用集合或多行

Hibernate - 查询缓存/二级缓存不适用于包含子项的值对象

java - Guava EventBus - 先进先出还是后进先出?