Java中避免空指針的幾個寫法

避免空指針的幾個寫法

equals

Object的equals方法是方法是對稱的,調用a.equals(b)和調用b.equals(a)是完全相同的,這也是為什么程序員對于對象a和b這么不上心。但是要注意a == null時會拋出空指針異常。

例如:

Object unknownObject = null;
if(unknownObject.equals("knownObject")){

}

所以我寧愿把確定不為null的對象放在前面。

valueOf()和toString()

因為調用null對象的toString()會拋出空指針異常,如果我們能夠使用valueOf()獲得相同的值,那寧愿使用valueOf(),傳遞一個null給valueOf()將會返回“null”,尤其是在那些包裝類,像Integer、Float、Double和BigDecimal。

例如:

BigDecimal bd;
System.out.println(String.valueOf(bd)); //不會拋出空指針異常
System.out.println(bd.toString()); //拋出 "Exception in thread    "main" 

避免從方法中返回空指針,而是返回空collection或者空數(shù)組。

盡可能返回一個空集合和空數(shù)組而不是返回null。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,900評論 18 399
  • 1 enum不能用作 變量名 備注:java 5以后enum是關鍵字 2 equals(obj)和hashCode...
    落落落落大大方方閱讀 1,078評論 0 1
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,443評論 0 2
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,228評論 0 4
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,661評論 0 3

友情鏈接更多精彩內容