空指针终结者之Optional

Posted fbw-gxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空指针终结者之Optional相关的知识,希望对你有一定的参考价值。

9012年了,请放弃(a!=null && a.getFiled()!=null)或者封装后写成(!ObejectUtil.isEmpty(a) && !ObjectUtil.isEmpty(a.getFiled()))的写法。快来交接下Optional吧。

 

Optinal的用法一抓一大片,此处不再赘述,为了防止空指针,记住以下几个原则即可:

  • 用ofNullable而别用of,进入ofNullable源码可知,此方法可以接受null的入参,而of方法接受null入参会报空指针。

  • 用orelse(orelseGet)而别用get,前者依旧可以有效避免空指针
  • 多层嵌套时,引入map,例如Optinal.ofNullable(a).map(Class::getFieled).map(Class::getFieled2).orElse(null);代码会更优雅。
  • 做非空判断,引入isParent即可
  • flatMap同Stream基础的flatMap,不赘述。

以上是关于空指针终结者之Optional的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之Optional类(JDK1.8新特性)

空指针异常与Optional类

Java优雅解决空指针问题源码级别刨析Optional

还在重复写空指针检查代码?考虑使用 Optional 吧!

Java8之Optional判空,简化判空操作

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