讨厌的npe如何去除

java语言的null大概就像c语言的空指针一样非常讨厌。特别是业务复杂的时候,多层判断简直让人抓狂,kotlin语言就针对这个问题进行了优化。那么作为java语言的编程者是不是就坐以待毙了呢?当然不是。我们可以使用Optional进行优化。

先强调Optional并不能消除null,这是不现实的,也不必要。在不复杂的场合,我们直接判断就可以了。Optional本质上也不是什么黑魔法,它就是一个容器,跟arraylist是一个性质的。因而可以得知,使用它必然产生一定开销,如果是算法比赛这类场景那还是建议不要用了,毕竟输入输出我们都希望多快好省。

Optional作为返回值是非常理想的选择。聪明的你撸了一个非常好的类,但在Optional还没出现之前,你不得不使用null作为某些情况的返回值,最终使得使用者相当抓狂。Optional作为返回值,可以摆脱这一噩梦。业务上需要空值时,不要直接返回null,可以选择使用 Optional.empty()。使用者使用Optional#ifPresent就可以比较好的减少null带来的困扰。