15036188778

您所在位置: 首页> 学习课程> java培训 | 这些低级Java问题,问了就不专业

java培训 | 这些低级Java问题,问了就不专业

发布百知教育 来源:学习课程 2019-09-05

特别是大团队协作开发,别人提供的接口或方法

正常情况下肯定不会返回null

可是偏偏生产环境就操作出了null场景(生产环境操作一般都比较骚)

然后就NPE

然后大领导就在群里叫:是谁,搞出来的NPE

然后NPE就在你的绩效、年终奖体现出来了  



标准NPE场景

对象.属性   (对象由于骚操作变成了null)


万恶的NPE


java.lang.NullPointerException


java培训


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


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


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


环境


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


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


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


java培训


案例分析


3.png


集合遍历的NPE


4.png


解决办法1,传统的方式


01.png


解决办法2,优雅的Optional


list集合


03.png


字符类型


101.png


map


102.png


对象



103.png


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


源码分析Optional


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


Optional 类


104.png


Optional.ofNullable 方法


返回的Optional<T>


105.png


orElse


直接返回的值对象



107.png


可恶的异常


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


optional总结


集合类型参数建议都 Optional.ofNullable(集合).orElse(Collections.emptyList())

需要if-else,也可以String fruit = Optional.ofNullable(str).orElse("Banana");

没有默认值的,就用Optional.isPresent()去NPE判断吧


注释:内容来自微信公众号我是程序汪

上一篇:java培训 | Mysql系列 - 第4天:DDL常见操作汇总

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

www.baizhiedu.com

有位老师想和您聊一聊

关闭

立即申请