Java 代码中如何预防空指针异常

  1. 云栖社区>
  2. 博客列表>
  3. 正文

Java 代码中如何预防空指针异常

xiaoqiu0817 2015-12-01 10:15:00 浏览812 评论0

摘要: 项目中遇到的NullPointerException 分两种情况: 引用空对象,即调用空对象的方法或引用空对象的属性。 将8中基础类型的封装类赋值给对应的基础类。 个人在做项目时,对NullPointerException的几点总结。

项目中遇到的NullPointerException 分两种情况:

  1. 引用空对象,即调用空对象的方法或引用空对象的属性。

  2. 将8中基础类型的封装类赋值给对应的基础类。

个人在做项目时,对NullPointerException的几点总结。

1.对于别人接口的返回对象要做非空判断,因为我们不清楚获得的对象会不会为空,对于Collection Map 我一般会调用CollectionUtils MapUtils ,对于返回的String对象,我会调StringUtils.isNotEmpty()进行非空判断。他们中isNotEmpty不仅判断了NULL 还判断了空集合和空串。例如从数据中查询的结果。

  1. 对于自己创建的对象,要留心对象进行哪些操作,中间会不会造成对象为空,如果可能加非空判断,尤其是对于集合的操作,很容易就报空指针!!!所以每次对操作集合时,我都会非常的留心。

  2. 对于前台的领域对象要非常的留心,因为这些对象是框架创建的,假如我没有在前台的文本框内输入值,虽然提交时后台获得的是空串,但发生NullPointerException的概率很高。

  3. 对于String 的操作尽量使用apache 的StringUtils类,与String相比这个是非常的安全。对于集合的操作使用apache的CollectionUtils 、MapUtils, 相比apache工具类的执行效率也非常的高,比如StringUtils.split();

有人说过多的判断会影响性能,我个人认为这里的性能牺牲和系统的安全相比是微不足道的。

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

xiaoqiu0817
文章44篇 | 关注2
关注
基于阿里聚安全的核心技术,为移动应用(APP)提供全生命周期的安全服务,其能够准确发现应用的... 查看详情
兼容Jenkins标准,可提供快速可靠的持续集成与持续交付服务。基于容器技术和阿里云基础服务... 查看详情
云数据库HybridDB(ApsaraDB HybridDB)是一种在线MPP大规模并行处理... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
双12

双12