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

创建链表数组时出现Null Pointer Exception问题求助

解决链表数组的NullPointerException问题

哈哈,这个问题我太熟了!你踩了Java数组初始化的一个经典坑——你只创建了数组本身,但数组里的MyLinkedList实例根本没被初始化!

让我拆解下你的代码:
当你执行MyLinkedList<String>[] list = new MyLinkedList[1];时,JVM只是给你分配了一个长度为1的数组空间,但数组里的每个元素默认都是null。这时候你直接调用list[0].addFirst("Milo"),就相当于对着一个空对象喊“做事”,它当然会抛出NullPointerException啦。而你单独用链表没问题,是因为那时候你肯定先new了一个MyLinkedList实例对吧?

修复方案很简单:先给数组元素创建实例,再调用方法

修改后的代码应该是这样的:

MyLinkedList<String>[] list = new MyLinkedList[1];
// 关键一步:初始化数组中的链表对象
list[0] = new MyLinkedList<>();
list[0].addFirst("Milo");
System.out.println(list[0].get(0));

额外小提示:关于泛型数组的小坑

Java里其实不支持直接创建泛型数组(比如new MyLinkedList<String>[1]会编译报错),你现在的写法是用原始类型数组转泛型数组,虽然能跑但会有unchecked警告。如果想更规范,推荐用ArrayList来替代数组,这样更贴合Java泛型的最佳实践:

ArrayList<MyLinkedList<String>> list = new ArrayList<>();
list.add(new MyLinkedList<>());
list.get(0).addFirst("Milo");
System.out.println(list.get(0).get(0));

内容的提问来源于stack exchange,提问作者Branko Andrews

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:54:14