使用Optional更优雅地处理非空判断

使用Optional更优雅地处理非空判断

一:引言

      在平常的编码之中,有一个错误总会在你的意料之外出现,那就是空指针异常。空指针的出现也很简单,你得到了一个null对象,调用了一些方法,出现空指针异常。空指针会出现在各种地方,常见的比如Map.get()没有获取到对象就调用对象例的方法,类对象没有获取到就调用类中的方法。

   空指针的处理方式也很多,最简单的方式就是用if/else判空,但是这样就会显得代码特别繁琐。

   在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。

  这篇文章就带你用JDK8中的Optional来解决空指针异常。

  二:什么是Optional

     Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。Optional 的方法如下:

 三:Map集合空值判断

   集合类型的判空在某些场景下会十分啰嗦,比如我最近刚遇到的一种场景,接收到的Map是这样的:

{"user":{"info":{"address":"hz"}}}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 使用Optional更优雅地处理非空判断