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

跨包调用Student类addEvents方法时遭遇NullPointerException问题求助

问题原因

报错的核心是Student类中的events ArrayList未完成初始化,调用add()方法时它还是null,触发了NullPointerException。

解决办法

方式一:声明时直接初始化

在Student类里修改events的定义,直接创建ArrayList实例:

// 在Student类的成员变量部分
private ArrayList<Event> events = new ArrayList<>();

方式二:通过构造方法初始化

给Student类添加构造方法,在对象创建时完成events的初始化:

public class Student {
    private ArrayList<Event> events;

    public Student() {
        // 初始化ArrayList
        events = new ArrayList<>();
    }

    // 原有的addEvents方法
    public void addEvents(Event e) {
        if(e != null)
            events.add(e);          
    }
}

可选优化

为了更稳妥,可以在addEvents方法中额外增加对events的非空判断,防止后续初始化逻辑变更再次引发问题:

public void addEvents(Event e) {
    if(e != null && events != null) {
        events.add(e);          
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:20:29