企业项目实训

DAY 03

BUG 01

(base) PS F:\DevProjects\mybatis02>  f:; cd 'f:\DevProjects\mybatis02'; & 'D:\TOOLS\java\java17\bin\java.exe' '@C:\Users\Lenovo\AppData\Local\Temp\cp_5ay1pvp72er74oaw5ext0123j.argfile' 'cn.edu.neu.mybatis01.Test'
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "cn.edu.neu.po.Dept.toString()" because "this.dept" is null
        at cn.edu.neu.po.Emp.toString(Emp.java:66)
        at java.base/java.lang.String.valueOf(String.java:4222)
        at java.base/java.lang.StringBuilder.append(StringBuilder.java:173)
        at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:457)
        at java.base/java.lang.String.valueOf(String.java:4222)
        at cn.edu.neu.po.Dept.toString(Dept.java:44)
        at java.base/java.lang.String.valueOf(String.java:4222)
        at java.base/java.io.PrintStream.println(PrintStream.java:1047)
        at cn.edu.neu.mybatis01.Test.main(Test.java:41)

描述

  • 在调用Dept.toString()方法时,当前Dept实例为NULL,无法调用

原因

  • 由于在Emp类中,Dept成员变量是新加入的,所以在之前的数据库存储的对象中,该成员变量的值为NULL
  • 在遍历到这些对象中,调用toString()方法,就会报错

解决

  • Emp类的toString方法中,加入对Dept的判断
    • 如果不为空,则打印
    • 如果为空,则打印null



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra
  • Displaying External Posts on Your al-folio Blog
  • 强化学习导论
  • 面试总结
  • 力扣hot100二番ak