<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          關(guān)于Java String 類型轉(zhuǎn)換時(shí)null的問題

          共 1939字,需瀏覽 4分鐘

           ·

          2020-08-02 19:24

          出處:cnblogs.com/panchanggui/p/10935335.html


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


          Java中對象轉(zhuǎn)換為String的常用方法:?


          方法1、String objStr = (String) obj:??強(qiáng)制類型轉(zhuǎn)換,對象obj為null,結(jié)果也為null,但是obj必須保證其本質(zhì)是String類型的值,即可轉(zhuǎn)換的值。例如,不能強(qiáng)制轉(zhuǎn)換 (String) 123


          方法2、String objStr =?obj.toString方法? ??:調(diào)用對象的toString方法,必須保證本類或者父類已經(jīng)重寫了Object類的toString方法,如果沒有重寫toString方法,將默認(rèn)調(diào)用Object類的toString方法,返回getClass().getName() + '@' + Integer.toHexString(hashCode()),并不是obj的實(shí)際字符串表示,同時(shí)還必須保證對象obj不能為null,否者調(diào)用toString方法會報(bào)空指針異常java.lang.NullPointerException。


          方法3、String objStr =?String.valueOf(obj)?:? ? 對象obj為null,轉(zhuǎn)換結(jié)果為字符串"null",否則,返回 obj.toString()?的值。注意,如果為obj為null,這里轉(zhuǎn)換后的值已經(jīng)是字符串的“null”,判空不能再用 obj == nulll,而應(yīng)該用 str.equals("null")。

          已經(jīng)知道obj為String類型的情況下,可以直接使用方法1轉(zhuǎn)換為String,轉(zhuǎn)換為String后判null條件為:if (objStr !=?null)


          慎用方法2


          對于不知道具體類型的情況下,可以使用方法3,只是轉(zhuǎn)換后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 ");//執(zhí)行
          ????}
          ????if?(strByString != null?&& strByString.equals("null")) {
          ????????System.out.println("strByString is not null, is \"null\" ");//不執(zhí)行
          ????}
          ????if?(strByStringValueOf == null) {
          ????????System.out.println("strByStringValueOf is null ");//不執(zhí)行
          ????}
          ????if?(strByStringValueOf != null?&& strByStringValueOf.equals("null")) {
          ????????System.out.println("strByStringValueOf is not null, is \"null\" ");//執(zhí)行
          ????}
          }





          覺得不錯點(diǎn)個“在看”哦!

          瀏覽 33
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  a在线免费视频了 | 亚洲一区影音先锋 | 一级无码爱爱片免费 | 黄 色 视 频 | 最好看的2019中文大全在线观看 |