java.lang.NullPointerException空指针异常(解决方案)

java.lang.NullPointerException今天又是写bug的一天,小结一下是如何解决空指针异常的,遇到更多的问题找到更多的解题思路自己才可以进步,加油!


一、实战问题

先说说我实战遇到的问题:我本身要从redis中取出帖子的点赞总数(likeCount),然后封装到Vo视图中,但是很多文章(帖子)本身点赞数就为0,所以你从redis取出来的值likeCount为空null

如果不进行判断直接封装,如下:

Object likeCount = redisTemplate.opsForValue().get(key);
postVo.setLikeCount((Integer) likeCount); 

前端出现的情况如下
在这里插入图片描述
我错误的解决方案:我习惯性用.equals来进行判断

在这里插入图片描述
项目一开马上报错
在这里插入图片描述
空指针异常
在这里插入图片描述
根据建议修改为StringUtils帮助类
在这里插入图片描述

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。


注意:在此免费赠送一套最新Java架构项目实战教程+大厂面试题库,有兴趣的 点击此处获取,没基础勿进!


二、总结反思

仔细反思一下为什么我刚刚会遇到空指针异常呢?

在这里插入图片描述

因为在这里我取到的likeCount为空,既然这个对象本身为空那自然不能调用这个方法。

所谓空指针异常,是因为用空(null)去调用属性或方法。null表示没有这个对象,既然没有这个对象,那么去调用他的属性和方法,就会报异常。

equals何时会空指针异常?

关于A.equals(B)-尽量是“常量”.equals(变量)

①对象为空(null),则不能调用方法;

②所以,为了避免出现空指针异常,应该这样写"要比较的字符串A.equals(变量B)


Hope that we can grow and progress as soon as possible and become an excellent Java Development Engineer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章