Java String轉換時為null的問題


開發中經常遇到從集合類List、Map中取出數據轉換為String的問題,這里如果處理不好,經常會遇到空指針異常java.lang.NullPointerException,在此總結一下常用轉換為String的方法,以及轉換后如何對其進行判null使用的問題。


Java中對象轉換為String的常用方法:

  方法一:String  objStr  =  (String) obj:

      強制類型轉換,對象obj為null,結果也為null,但是obj必須保證其本質是String類型的值,即可轉換的值。

      例如,不能強制轉換 (String) 123 

  方法二:String  objStr  =  obj.toString():

      調用對象的toString方法,必須保證本類或者父類已經重寫了Object類的toString方法,如果沒有重寫toString方法,

      將默認調用Object類的toString方法,返回getClass().getName() + '@' + Integer.toHexString(hashCode()),

      並不是obj的實際字符串表示,同時還必須保證對象obj不能為null,否者調用toString方法會報空指針異常java.lang.NullPointerException。

  方法三:String  objStr  =  String.valueOf(obj):

      對象obj為null,轉換結果為字符串"null",否則,返回 obj.toString() 的值。

      注意,如果為obj為null,這里轉換后的值已經是字符串的“null”,判空不能再用 obj == null,也不能使用apache.commons.lang3

      下的StringUtils.isBank(CharSequence cs),而應該用 str.equals("null")。

 

已經知道obj為String類型的情況下:

  使用方法1轉換為String,轉換為String后判null條件為:if (objStr != null)

  慎用方法2
 
  對於不知道具體類型的情況下,可以使用 方法3,只是轉換后String的判null條件改為: if (!objStr.equals('null'))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM