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 等,具体可以查看源代码)。
二、总结反思
仔细反思一下为什么我刚刚会遇到空指针异常呢?
因为在这里我取到的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
推荐阅读
-
在Java8中如何风骚走位的避开空指针异常
-
荐 java程序员最常见的空指针异常java.lang.NullPointerException
-
Java自动拆箱空指针异常,救火队员上线
-
Java中构造方法、空指针异常现象、基本数据类型和引用数据类型作为参数传递的区别
-
std:nothrow不抛异常置空指针
-
quartz框架定时任务整合springboot报空指针异常解决
-
Java自动拆箱空指针异常的解决
-
空指针异常,算得上是一个简单低级的错误吧 java.lang.NullPointerException: null
-
Java开发笔记(七十七)使用Optional规避空指针异常
-
IDEA中java的properties配置文件报空指针解决方案