无感NullPointerException的值相等判断方法
场景:当我们需要去判断一个 入参/查库 返回的开关变量(通常是个Integer类型的)时,常常会写如下的if-else判断语句。但又会为在生产环境看到的「NullPointerException」感到困扰。遇到过这样问题的小伙伴,可以继续向下看:
public static void main(String[] args) { Integer a = 1; Integer b = null; if(b!=1){ System.out.println("不等于"); }else { System.out.println("等于"); } }
这里b=nll,直接来看「b!=1」是可以打印出「不等于」的,但结果竟是出乎意料的空指针异常:
Exception in thread "main" java.lang.NullPointerException at com.XXX.Controller.main(XXX.java:223)
为了避免上面的问题:
方法一:
在if分支中添加判空的逻辑:
if(null!= b && b!=1)
🌟🌟🌟方法二(更优雅):
我们可以使用「Objects.equals()」工具类来实现判断逻辑:
public static void main(String[] args) { Integer a = 1; Integer b = null; if(!Objects.equals(1,b)){ System.out.println("不等于"); }else { System.out.println("等于"); } }
输出结果:
不等于
当然,不影响本就不相等的情况,例如:「b=2」,输出的是「不等于」
到此这篇关于无感NullPointerException的值相等判断的文章就介绍到这了,更多相关NullPointerException的值相等判断内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详谈Java中instanceof和isInstance的区别
下面小编就为大家带来一篇详谈Java中instanceof和isInstance的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-01-01Spring中的监听器SpringApplicationRunListener详解
这篇文章主要介绍了Spring中的监听器SpringApplicationRunListener详解,命名我们就可以知道它是一个监听者,分析springboot启动流程我们会发现,它其实是用来在整个启动流程中接收不同执行点事件通知的监听者,需要的朋友可以参考下2023-11-11
最新评论