当new的对象为null时,是不能通过set修改属性的

本文记录了一次在代码中遇到的对象为空导致的异常问题及解决过程。作者在使用对象前未检查是否为空就尝试调用方法,导致运行时错误。通过简单的判断与对象实例化解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        今天敲代码时,一直报空值百思不得其解,明明通过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);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值