關於Java String 類型轉換時null的問題

來源:互聯網
上載者:User

標籤:


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

Java中對象轉換為String的常用方法: 方法1、String objStr = (String) obj:    強制類型轉換,對象obj為null,結果也為null,但是obj必須保證其本質是String類型的值,即可轉換的值。例如,不能強制轉換 (String) 123方法2、String objStr = obj.toString方法    :調用對象的toString方法,必須保證本類或者父類已經重寫了Object類的toString方法,如果沒有重寫toString方法,將預設調用Object類的toString方法,返回getClass().getName() + ‘@‘ + Integer.toHexString(hashCode()),並不是obj的實際字串表示,同時還必須保證對象obj不能為null,否者調用toString方法會報null 指標異常java.lang.NullPointerException。方法3、String objStr = String.valueOf(obj) :    對象obj為null,轉換結果為字串"null",否則,返回 obj.toString() 的值。注意,如果為obj為null,這裡轉換後的值已經是字串的“null”,判空不能再用 obj == nulll,而應該用 str.equals("null")。 已經知道obj為String類型的情況下,可以直接使用方法1轉換為String,轉換為String後判null條件為:if (objStr != null)慎用方法2對於不知道具體類型的情況下,可以使用方法3,只是轉換後String的判null條件改為:if (!objStr.equals(‘null‘)) 測試代碼:

 

public static void testStringNull() {    //String, toString, String.valueOf()    Object obj = null;        String strByString = (String) obj;//        String strByToString = obj.toString();    //toString 必須保證不為null,否則java.lang.NullPointerException    String strByStringValueOf = String.valueOf(obj);    System.out.println("strByString="+strByString+", strByStringValueOf="+strByStringValueOf);    if (strByString == null ) {        System.out.println("strByString is null ");//執行    }    if (strByString != null &&  strByString.equals("null")) {        System.out.println("strByString is not null, is \"null\" ");//不執行    }    if (strByStringValueOf == null) {        System.out.println("strByStringValueOf is null ");//不執行    }    if (strByStringValueOf != null && strByStringValueOf.equals("null")) {        System.out.println("strByStringValueOf is not null, is \"null\" ");//執行    }}

 

關於Java String 類型轉換時null的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.