無感NullPointerException的值相等判斷方法
場景:當我們需要去判斷一個 入?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é)果:
不等于
當然,不影響本就不相等的情況,例如:「b=2」,輸出的是「不等于」
到此這篇關(guān)于無感NullPointerException的值相等判斷的文章就介紹到這了,更多相關(guān)NullPointerException的值相等判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)超詳細分析二叉搜索樹
二叉搜索樹是以一棵二叉樹來組織的。每個節(jié)點是一個對象,包含的屬性有l(wèi)eft,right,p和key,其中,left指向該節(jié)點的左孩子,right指向該節(jié)點的右孩子,p指向該節(jié)點的父節(jié)點,key是它的值2022-03-03
java內(nèi)部類之成員內(nèi)部類、局部內(nèi)部類和匿名內(nèi)部類用法及說明
這篇文章主要介紹了java內(nèi)部類之成員內(nèi)部類、局部內(nèi)部類和匿名內(nèi)部類的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
IDEA啟動Springboot報錯:無效的目標發(fā)行版:17 的解決辦法
這篇文章主要給大家介紹了IDEA啟動Springboot報錯:無效的目標發(fā)行版:17 的解決辦法,文中通過代碼示例和圖文講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-02-02
Springboot項目實現(xiàn)Mysql多數(shù)據(jù)源切換的完整實例
這篇文章主要給大家介紹了關(guān)于Springboot項目實現(xiàn)Mysql多數(shù)據(jù)源切換的完整實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Java?MyBatis是如何執(zhí)行一條SQL語句的
這篇文章主要介紹了Java?MyBatis是如何執(zhí)行一條SQL語句的,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07

