java初学中
public boolean judgeStudent(String id) {
boolean judgeresult = false;
Student[] Stu = studentdao.getStudent();
for (int i = 0; i < Stu.length; i++) {
Student stu = Stu[i];
//if(stu.getNum().equals(id) && stu != null)错误
if (stu != null && stu.getNum().equals(id)) {
judgeresult = true;
break;
}
}
return judgeresult;
}
Exception in thread “main” java.lang.NullPointerException
为什么调换一下位置就能成功运行
因为当stu等于null时,把stu != null放前面,这个条件就不满足,后面的表达式就不会去判断,也就避免了空指针的错误
//if(stu.getNum().equals(id) && stu != null)错误
先判断equals 当id为空时会报异常 equals(null)异常
if (stu != null && stu.getNum().equals(id))
先判断是否为空,如果不为空则equal,避免异常