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

Java自定义类数组输入数据时抛出java.lang.NullPointerException报错求解

问题排查与修复

空指针异常根因

Java中创建引用类型数组时,仅会初始化数组容器,数组内的所有引用元素默认值为null,你没有为arr数组的每个下标实例化Course对象,就直接调用arr[i]的setXXX()方法,就会触发java.lang.NullPointerException。

另外你现有代码还存在一处逻辑错误:第一个输入项为课程编码,但你调用了setCchour()方法,会把课程编码错误存入学分字段。

修复方式(无需调整Course类构造器)

你只需要在赋值循环的开头,为当前下标对应的数组元素实例化Course对象即可,同时修正方法调用错误,原冗余声明的Course c = new Course();全程未使用,可以直接删除:

// 原创建数组代码不变
Course arr[]=new Course[x];
// 删掉没用的 Course c =new Course(); 行
for (int i = 0; i < arr.length; i++) {
    // 新增行:为当前数组元素实例化Course对象
    arr[i] = new Course();
    System.out.println("Enter Course Code");
    // 修正方法调用:用setCcode存储课程编码
    arr[i].setCcode(s.nextInt());
    System.out.println("Enter course Title");
    arr[i].setCtitle(s.next());
    System.out.println("Enter Course Credit hour");
    arr[i].setCchour(s.nextInt());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:04