關於專案中遇到的NullPointerException異常時處理手段

qingyezhu發表於2014-11-12

在專案開發中,經常會遇到NullPointerException異常,特別是一些新手,非常的鬱悶,有時候會很隱蔽,特別是不同的人書寫的程式碼進行呼叫時。

以下是我所遇到的NullPointerException異常情景:

問題:

1、迴圈List時,如:

for(int i = 0,size = list.size();i < size;i ++){
   dosomething....
}

 

2、比較字串時,如:

if(str.equals("test")){
  dosomething....    
}

3、呼叫物件的方法時,如

System.out.println(str.toString());

 

解決方案:

1、對於這個問題,要不在使用之前判斷其是否是非空,如:

if(list != null){
  for(int i = 0,size = list.size();i < size;i ++){
   dosomething....
  }
}

要麼返回的List物件大小為0的List,如:

list = Collections.emptyList();

2、對於這個問題,要麼是在使用之前判斷其是否為非空,如:

if(str != null && str.equals("test")){
  dosomething....    
}

要麼是左邊是已知的字串,如:

if("test".equals(str)){
  dosomething....    
}

3、對於這個問題,若是使用toString()方法,可以這樣,如:

System.out.println(String.valueOf(str));

即使該物件為null,但是其呼叫之後輸出的字串"null",也不會發生異常;

若是呼叫其它的方法,則需要判斷其是否為空,當然若你知道肯定不為空,則不必,若連你自己都無法確定是否非空,則必須要判斷一下。

 

相關文章