无感NullPointerException的值相等判断方法
短信预约 -IT技能 免费直播动态提醒
场景:当我们需要去判断一个 入参/查库 返回的开关变量(通常是个Integer类型的)时,常ju常会写如下的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的值相等判断内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341