初学者问下我用boolean method判断是否数值在数组中报错?

问题遇到的现象和发生背景

获取学生id之后用 boolean 判断学生id是否在数组中出错,求解

img


这样的关系

问题相关代码,请勿粘贴截图
    for(int i =0;i<students.length;i++) {
        if(students[i].getId().equals(student.getId())) {
            return false;
            }
        }
            return true;
    }

运行结果及报错内容

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException

我的解答思路和尝试过的方法
我想要达到的结果

找到 student id 如果 存在的返回 false 如果不存在 返回 true

NullPointerException 空指针异常表示使用 null 值调用了方法,你可以看下日志确认具体的错误位置,推测为 students[i] 或者 student 的值为 null,如果确实可能为 null,可以在比较之前加一个判断。

NullPointerException是因为第2行代码中students[i].getId(),这个产生的ID可能为null,然后null去调用了.equals方法导致报错
解决办法:
如果你保证student.getId()获取到的ID不为null,可以将.equals前后颠倒