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

创建引用Student类的数组时触发java.lang.NullPointerException问题求助

解决NullPointerException问题:未初始化数组中的Student对象

你遇到的NullPointerException原因很清晰:当你执行Student[] array = new Student[numberofstudents];时,只是给数组分配了能容纳指定数量Student引用的内存空间,但数组里的每一个元素默认都是null——你还没真正创建Student对象,就直接去访问它的属性,这必然会触发空指针异常。

修复要点:

  • 循环内部先实例化Student对象,再给属性赋值
  • 修正代码里的两处小错误:
    • 属性名拼写错误:studentnumbere应该是studentnumber
    • 学号是int类型,要使用Terminal.askInt()而非askString()

修正后的完整代码:

public class main {
    public static class Student {
        public String firstname;
        public String lastname;
        public int studentnumber;
    }

    public static void main(String[] args) {
        int numberofstudents = Terminal.askInt("How many students do you want to enter? ");
        Student[] array = new Student[numberofstudents];
        
        for (int i = 0; i < numberofstudents; i++) {
            // 关键步骤:先创建Student对象实例
            array[i] = new Student();
            array[i].firstname = Terminal.askString("Enter student's firstname: ");
            array[i].lastname = Terminal.askString("Enter student's lastname: ");
            array[i].studentnumber = Terminal.askInt("Enter student's number: ");
        }
    }
}

额外说明:

Java中引用类型的数组(比如Student[])初始化时,仅会确定数组的长度,每个位置的元素默认是null。必须手动为每个数组元素创建对应的对象实例(new Student()),之后才能安全地访问对象的属性或调用方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:54:48