You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何创建List<List<Integer>>类型的数组?

创建List<List>类型数组的编译错误解决方法

尝试创建List<List<Integer>>类型的数组时,编写了如下代码:

List<List<Integer>>[] numList = new ArrayList<List<Integer>>[10];

编译时出现以下错误:

Cannot create a generic array of ArrayList
Type mismatch: cannot convert from boolean to List

正确写法有以下几种方案:

方案1:用嵌套列表替代数组(推荐)

Java不允许直接实例化泛型数组,最安全合规的方式是用List<List<List<Integer>>>来模拟数组结构:

List<List<List<Integer>>> numList = new ArrayList<>();
// 初始化10个空的List<Integer>容器
for (int i = 0; i < 10; i++) {
    numList.add(new ArrayList<>());
}

这种写法完全符合泛型规范,没有编译警告或错误,类型安全有保障。

方案2:借助通配符创建数组(带unchecked警告)

如果业务场景必须使用数组,可以通过通配符类型绕过编译检查,不过会产生unchecked警告,使用时需确保不会存入不符合类型的元素:

@SuppressWarnings("unchecked")
List<List<Integer>>[] numList = (List<List<Integer>>[]) new ArrayList<?>[10];

// 初始化每个数组元素
for (int i = 0; i < numList.length; i++) {
    numList[i] = new ArrayList<>();
}

方案3:使用原始类型数组(不推荐)

也可以基于原始类型ArrayList创建数组后强转,但这种写法会丢失泛型类型检查,容易引发运行时错误,不建议使用:

@SuppressWarnings({"unchecked", "rawtypes"})
List<List<Integer>>[] numList = (List<List<Integer>>[]) new ArrayList[10];

内容的提问来源于stack exchange,提问作者Dheerendra Kulkarni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:42:02