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总结
- 集合类型参数建议都 Optional.ofNullable(集合).orElse(Collections.emptyList())
- 需要if-else,也可以String fruit = Optional.ofNullable(str).orElse("Banana");
- 没有默认值的,就用Optional.isPresent()去NPE判断吧
请先 后发表评论~