今天敲代码时,一直报空值百思不得其解,明明通过set赋值了怎么还为空呢(代码为下面所示)
EduSubject eduSubject1 = this.oneEduSubject(subjectService,subjectData.getOneSubjectName());
if (eduSubject1 == null){
eduSubject1.setParentId("0");
eduSubject1.setTitle(subjectData.getOneSubjectName());
subjectService.save(eduSubject1);
}
System.out.println("eduSubject1..."+eduSubject1);
报错原因也很简单,就是对象为null值。但因为平常很少出现会先让对象为空值时再进行添加,故导致我直接忽视掉对象赋值要在不为null或是一个新对象为前提下才能修改值,以至于在排查时一直想的是set之后,但在debug是发现诶?怎么一直到不了set之后呢,到最后才去推测可能是上面的问题(当真一点逗比哈哈)
com.alibaba.excel.exception.ExcelAnalysisException: Cannot invoke "com.master.eduservice.entity.EduSubject.setParentId(String)" because "eduSubject1" is null
后面解决方法也很简单,将这个空值对象重新new一个新的对象即可解决
EduSubject eduSubject1 = this.oneEduSubject(subjectService,subjectData.getOneSubjectName());
if (eduSubject1 == null){
eduSubject1 = new EduSubject();
eduSubject1.setParentId("0");
eduSubject1.setTitle(subjectData.getOneSubjectName());
subjectService.save(eduSubject1);
}