java.lang.NullPointerException错误的解决方案

一、java.lang.NullPointerException出现的几种原因以及解决

java.lang.NullPointerException空指针异常是容易出现的问题,这个问题一般情况都是不细心的时候出现的,开始正文如下:

1、业务层面的错误:

1、没有写非空验证:if(list.size()>0 && !“”.equal(list));
  2、service方法引用注解的,有可能没有写注解(这个问题以前没有用代码模板工具经常出现);
  3、查到的值for循环get出来可能不会空指针,但是多次get的写法可能造成空指针,如userMap.get(0).getUsername(),如果这个用户不存在,用null去get会报空指针异常
  4、字符串变量未初始化
  5、接口类型的对象没有用具体的类初始化,比如:
Map map // 会报错
Map map = new Map(); //则不会报错了
6、null.toString()会报错,通常用null去调用方法都会报错,str.replace(…)
7、class被声明了类型, 默认 class = null; 这样在调用class中方法的时候系统只能给你个空指针异常, 给其实例化就好了:class = new Class();

2、sql方法层面的错误:

a、mapper文件的dao路径引用路径写错
  b、sql语句写错,(这个问题你在写sql语句的时候应该跑一下看看有没有错误,我觉得对于像我一样的萌新很有必要);
  c、sql字段可能存在没有值,去查询selectById实体后,又去get这个属性,刚好这个字段没有值,也会有空指针异常

二、如何避免空指针

1、平常代码养成规范,要充分考虑空值的情况
判定非空、连续get谨慎(多次判定)

部分对象判空技巧:
StringUtils.isNotBlank(str)
StringUtils.isNotEmpty(str)
object != null
2、有可能数据库设计不规范、数据库垃圾数据、数据库数据不全不合理
3、优先使用String.valueOf()方法代替toString()
当程序代码需要对象的字符串表示形式时,请避免使用该对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null"
4、数据库所有字段尽量设置默认值,如deleted默认非删除,status默认初始化
5、尽量不要用str.toString(),改用String.valueOf()等小技巧

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习微站公众平台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值