Java程序员经常NPE永远难拿到20K,请养成防NPE好习惯

万恶的NPE

java.lang.NullPointerException

如果你的代码经常出现NPE,工资肯定不会高多少。(已经工资很高但也经常NPE的同学赶紧学习学习)

NPE是一个低级问题,平时我们就要养成防NPE的好习惯。

下面我介绍一个防NPE神器。

环境

jdk1.8以上、idea、java程序员

使用 JDK8 的 Optional 类来防止 NPE 问题

某某java规范宝典里也提到了

案例分析

解决办法1,传统的方式

解决办法2,优雅的Optional

  • list集合

  • 字符类型

  • map

对象

如果返回的是集合,建议orElse(空集合),这样防NPE不错。

源码分析Optional

知识准备:泛型方法、泛型类 (有空我也要复习下)

Optional 类

Optional.ofNullable 方法

返回的Optional<T>

通过 get()可以返回对象

orElse

直接返回的值对象

可恶的异常

使用optional获取对象,可以节省很多空指针的判断

optional总结

  1. 集合类型参数建议都 Optional.ofNullable(集合).orElse(Collections.emptyList())
  2. 需要if-else,也可以String fruit = Optional.ofNullable(str).orElse("Banana");
  3. 没有默认值的,就用Optional.isPresent()去NPE判断吧

举报
评论 0