一、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()等小技巧

java.lang.NullPointerException错误的解决方案相关推荐

  1. 解决parseSdkContent failed java.lang.NullPointerException错误

    今天我的eclipse崩溃了,报"parseSdkContent failed java.lang.NullPointerException"的错误. 所有的安卓项目都不正常,创建 ...

  2. 安装失败java.lang_linux安装jdk出现java/lang/NoClassDefFoundError: java/lang/Object错误的解决方案...

    近日在redhat上安装jdk出现了一个莫名的错误 Error occurred during initialization of VM java/lang/NoClassDefFoundError: ...

  3. java远程执行jmi,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  4. matlab斜杠报错,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  5. matlab java错误,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  6. 空指针错误 java.lang.NullPointerException 浅谈

    使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long)一 ...

  7. java构建器出错nullpoint_空指针错误 java.lang.NullPointerException 浅谈

    使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long)一 ...

  8. 【Javaweb——tomcat常见错误】java.lang.NullPointerException

    参考:java.lang.NullPointerException出现的几种原因以及解决 运行程序时,发生错误: 错误类型:java.lang.NullPointerException 错误的地方:两 ...

  9. java.lang.NullPointerException错误分析

    java.lang.NullPointerException是什么错误 你使用了空的指针.在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针.这种情况一般发生在你使用 ...

最新文章

  1. BigInteger类实例的构造过程——JDK源码解析
  2. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
  3. Android中最简单的分享功能
  4. 以某个字符开始_小白从零开始数据分析01—Excel常用公式汇总(数据清洗)
  5. YbtOJ#631-次短路径【左偏树,最短路】
  6. 蚂蚁庄园 php源码,蚂蚁庄园五体投地
  7. Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换
  8. web前端篇:html基础知识
  9. 语音信号处理、语音信号分析
  10. Unity跳转App的应用市场
  11. [Qt] 使用LZMA SDK完成C++的7z格式文件压缩和解压缩
  12. 西门子1200PLC模拟量测温案例1
  13. Sublime Merge中文版
  14. React基础(肆)———状态和循环渲染
  15. 利用ELK分析Nginx日志生产实战(高清多图)
  16. 建造者模式Builder——读书笔记
  17. 智慧校园之蓝牙定位在学校中的应用,蓝牙室内定位-新导智能
  18. PHP学习路线图--2014-11-29
  19. CVM 单节点集群配置
  20. Kubernetes资源编排系列之五: OAM篇

热门文章

  1. 金山实习日记·大结局
  2. solidworks装配体改为柔性_干货!大神整理的这些SolidWorks技巧总结,学到就是赚到...
  3. Mentor Xpedition设置中英文切换
  4. CEF3开发者系列之CefEnableHighDPISupport详解
  5. FFMPEG 将YUV420P格式数据编码成H.264
  6. STM32-CubuMX-HAL库学习(五)-- 串口的基础收发实现
  7. 一款免费好用的手机投屏工具,多屏互动套件AirPin
  8. 百度关键词ad竞价的优劣势分析,信息流优化师必看
  9. 乐高教育的发展史:揭秘历代乐高教育套件
  10. 两相交的直线段夹角平分的直线上过交点距离为d的另一点求解公式