gpt4 book ai didi

java - 打印对象数组会出现空指针异常

转载 作者:行者123 更新时间:2023-12-02 04:04:57 24 4
gpt4 key购买 nike

public class StudentSchedular {

private Student[] students=new Student[10];
private int counterStudent;

public String addStudent(int rollNumber,String name)
{
students[counterStudent++]=new Student(rollNumber,name);

return "Student added successfully";
}

public void showAllStudents()
{
for(int i=0;i<students.length;i++){
System.out.println(students[i].getRollNumber());
System.out.println(students[i].getName());
}
}
}

我知道这是一个菜鸟问题..但仍然!在这里,我省略了其他 getter/setter 部分以及输入 rollnumber 和 name 值的其他情况。我正在尝试打印对象数组,但它给出了空指针异常。我只输入 2 3 个值,当我尝试打印时,它给出了 NPE。我知道这是因为空值位于剩余的索引位置,我只需要一个 soln 来打印整个对象数组!

最佳答案

您获得 NullPointerException 的原因是因为private Student[] students=new Student[10]; 。这意味着您有一个 Student固定大小为 10 的数组。默认 Object Java 中的值是 null 。如果不向数组添加任何内容,则意味着您有 10 null学生中的对象。

如果学生数组中的偏移量尚未填充,您将遇到空值并收到异常,因为您尝试调用 null 上的方法。 .

您可以在循环中验证它:

        for(int i=0;i<students.length;i++){
if(students[i] instanceof User) {
System.out.println(students[i].getRollNumber());
System.out.println(students[i].getName());
}
}

编辑:可以通过使用 List<User> 来避免此“问题”而不是User[] 。但我无法为您决定这是否更有意义。

关于java - 打印对象数组会出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34418837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com