無感NullPointerException的值相等判斷方法
場景:當(dāng)我們需要去判斷一個 入?yún)?查庫 返回的開關(guān)變量(通常是個Integer類型的)時,常常會寫如下的if-else判斷語句。但又會為在生產(chǎn)環(huán)境看到的「NullPointerException」感到困擾。遇到過這樣問題的小伙伴,可以繼續(xù)向下看:
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」是可以打印出「不等于」的,但結(jié)果竟是出乎意料的空指針異常:
Exception in thread "main" java.lang.NullPointerException ? ? at com.XXX.Controller.main(XXX.java:223)
為了避免上面的問題:
方法一:
在if分支中添加判空的邏輯:
if(null!= b && b!=1)
??????方法二(更優(yōu)雅):
我們可以使用「Objects.equals()」工具類來實現(xiàn)判斷邏輯:
public static void main(String[] args) { ? ?Integer a = 1; ? ?Integer b = null; ? ?if(!Objects.equals(1,b)){ ? ? ? System.out.println("不等于"); ? ?}else { ? ? ? System.out.println("等于"); ? ?} }
輸出結(jié)果:
不等于
當(dāng)然,不影響本就不相等的情況,例如:「b=2」,輸出的是「不等于」
到此這篇關(guān)于無感NullPointerException的值相等判斷的文章就介紹到這了,更多相關(guān)NullPointerException的值相等判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java字節(jié)碼框架ASM的深入學(xué)習(xí)
這篇文章主要給大家介紹了java中字節(jié)碼框架ASM的相關(guān)資料,文中介紹的非常詳細(xì),相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-01-01SpringBoot設(shè)置動態(tài)定時任務(wù)的方法詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot設(shè)置動態(tài)定時任務(wù)的方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的參考價值,需要的可以參考一下2022-06-06java實現(xiàn)省市區(qū)轉(zhuǎn)換成樹形結(jié)構(gòu)
這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)省市區(qū)轉(zhuǎn)換成樹形結(jié)構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08Springboot非分布式定時任務(wù)實現(xiàn)代碼
這篇文章主要介紹了Springboot非分布式定時任務(wù)實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11深入淺析java web log4j 配置及在web項目中配置Log4j的技巧
這篇文章主要介紹了2015-11-11springboot中@ConfigurationProperties無效果的解決方法
本文主要介紹了springboot中@ConfigurationProperties無效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06Spring?Boot整合持久層之JdbcTemplate多數(shù)據(jù)源
持久層是JavaEE中訪問數(shù)據(jù)庫的核心操作,SpringBoot中對常見的持久層框架都提供了自動化配置,例如JdbcTemplate、JPA 等,MyBatis 的自動化配置則是MyBatis官方提供的。接下來分別向讀者介紹Spring Boot整合這持久層技術(shù)中的整合JdbcTemplate2022-08-08兩種JAVA實現(xiàn)短網(wǎng)址服務(wù)算法
這篇文章介紹了兩種JAVA實現(xiàn)短網(wǎng)址服務(wù)算法,一種是基于MD5碼的,一種是基于自增序列的,需要的朋友可以參考下2015-07-07postman?如何實現(xiàn)傳遞?ArrayList?給后臺
這篇文章主要介紹了postman?如何實現(xiàn)傳遞?ArrayList給后臺,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12