新手Java程序猿,怎樣在代碼中避免空指針異常

那麼,問題來了,咱們這樣的新手java,怎麼在工做和代碼中避免出現此類狀況呢?html

1) 從已知的String對象中調用equals()和equalsIgnoreCase()方法,而非未知對象。java

老是從已知的非空String對象中調用equals()方法。由於equals()方法是對稱的,調用a.equals(b)和調用b.equals(a)是徹底相同的,這也是爲何程序員對於對象a和b這麼不上心。若是調用者是空指針,這種調用可能致使一個空指針異常;以下:程序員

示例1:
Object unknownObject = null;  
  
//錯誤方式 – 可能致使 NullPointerException  
if(unknownObject.equals("knownObject")){  
   System.err.println("This may result in NullPointerException if unknownObject is null");  
}  
  
//正確方式 - 即使 unknownObject是null也能避免NullPointerException  
if("knownObject".equals(unknownObject)){  
    System.err.println("better coding avoided NullPointerException");  
}

示例2:
String unknownStr = null;

//錯誤方式 – 可能致使 NullPointerException  
if(unknownStr .equals("knownObject")){  
   System.err.println("This may result in NullPointerException if unknownObject is null");  
}  
  
//正確方式 - 即使 unknownObject是null也能避免NullPointerException  
if("knownStr".equals(unknownStr)){  
    System.err.println("better coding avoided NullPointerException");  
}
相關文章
相關標籤/搜索