在上篇文章Java8新特性指导手册中简单的提了一下如何通过Optional类来对对象做空校验。接下来,我们再细说一下:
业务中,假设我们需要获取Outer对象对底层的Inner中的foo属性,我们必须写一堆的非空校验,来防止发生NullPointerException:
通过Optional
在Java8中,我们有更优雅的解决方式,那就是使用Optional是说,我们可以在一行代码中,进行流水式的map操作。而map方法内部会自动进行空校验:
通过suppiler函数自定义方法
上面这种方式个人感觉还是有点啰嗦,我们可以利用suppiler函数来出一个终极解决方案:
利用上面的resolve方法来重构上述的非空校验代码段:
最后
你需要知道的是,上面这两个解决方案并没传统的null检查性能那么高效。但在绝大部分业务场景下,舍弃那么一丢丢的性能来方便编码,是完全可取,除非是那种对性能有严格要求的,我们才不建议使用。
以上就是动力节点java培训机构的小编针对“Java基础学习:java空指针异常避免”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习