在Java语言中,处理空指针往往是一件很头疼的事情,一不小心,说不定就搞出个线上Bug,让你的绩效考核拿到3.25。最近新出的Java14,相信大家都有所耳闻,那么今天就来看看,面对NullPointer…
在Java语言中,处理空指针往往是一件很头疼的事情,一不小心,说不定就搞出个线上Bug,让你的绩效考核拿到3.25。最近新出的Java14,相信大家都有所耳闻,那么今天就来看看,面对NullPointerException,Java14有哪些更好的处理方式呢?
1.传统的 NullPointerException
我们编码过程中呢,经常会使用链式调用的方式来写代码,这样写起来很方便,也很清晰,但是,一旦出现NullPointerException,那就头大了,因为你很难知道异常是在什么时候开始发生的。 举个简单的例子,就比如下面的代码,要找到公司某个员工的户籍所在地,我们这样来调用
1 | String city = employee.getDetailInfos().getRegistryAddress().getCity(); |
在链式调用的过程中,如果
employee , getDetailInfos() ,或者 getRegistryAddress() 为空,JVM就会抛出 NullPointerException , 那么导致异常的根本原因是什么?如果不使用调试器,很难确定哪个变量为空。而且,JVM也只会打印导致异常的方法、文件名和行号,仅此而已。 那么下面,我将带大家了解Java 14如何通过 JEP 358 解决这个问题。1 | #### 2.增强型 NullPointerException |
Cannot invoke “RegistryAddress.getCity()” because the return value of
“com.developlee.java14.helpfulnullpointerexceptions.HelpfulNullPointerException$DetailInfos.getRegistryAddress()” is null
at com.developlee.java14.helpfulnullpointerexceptions.HelpfulNullPointerException.main(HelpfulNullPointerException.java:10)
1 |
|
Employee employee = null;
employee.getName();
1 |
|
“com.developlee.java14.helpfulnullpointerexceptions.HelpfulNullPointerException$Employee.getName()”
1 | because "employee" is null |
JVM 打印编译器分配的变量索引,而不是本地变量名(employee)。
关于NullPointerException的处理到这里就结束了,通过Java14增强的NullPointerException,我们可以很快速的定位代码问题的原因所在,更快的调试代码,节约时间,提高效率。
已经安装了Java14的朋友可以试试看哦~
叮叮叮!
本文标题: NullPointerException的处理新方式Java
发布时间: 2021年01月23日 00:00
最后更新: 2025年12月30日 08:54
原始链接: https://haoxiang.eu.org/61e085fc/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!

