91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Object轉String

發布時間:2021-09-13 14:48:27 來源:億速云 閱讀:205 作者:柒染 欄目:web開發

今天就跟大家聊聊有關如何使用Object轉String,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

如何使用Object轉String

開發中,小伙伴一定經常遇到將一個Object類型的字段轉換為String類型的字段。比如我們從一個類型定義為Map<String, Object>

Object轉換為String的方式有如下幾種:

  • (String)object

  • object.toString()

  • Stirng.valueOf(object)

  • ""+object

我們暫且先不討論哪種好,哪種不好,我們先認真考慮下從map中get出來的value值存在幾種情況。

如果這個map是上游系統給我們的,秉持不相信上游系統的原則,那么某一個key為type對應的value值可能存在如下幾種情況:

  1. value為字符串,符合傳遞要求

  2. value為其他類型,比如為Integer類型

  3. value為空字符串

  4. value為空格

  5. value沒傳值,默認為null

  6. map中不包含這個key

針對這些情況,接下來我們具體分析Object轉換為String的方式。

(String)object

(String)object是將Object類型的對象強制轉換為String類型。

對于空格、空字符串、null都可以轉換,但是Object對象的值類型不是字符串比如Integer類型時,會存在類型轉換異常錯誤。

public static void main(String[] args) {        /**         * 為了兼容各種參數,map的value值定義為了Object類型         * 針對一個key為type的值,它的value存在以下幾種情況:         * 1)value為字符串         * 2)value為空字符串         * 3)value為空格         * 4)value沒傳值,默認為null         * 5)map中不包含這個key         */        Map<String, Object> mapParams = new HashMap<String, Object>();        TypeEntity entity = new TypeEntity();        /**         * 強制類型轉換         */        mapParams.put("type",1);        System.out.println("使用強制類型轉換的結果為:" + (String) mapParams.get("type")) ; }

運行結果為:

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String     at com.alipay.demo.StringTest.main(StringTest.java:30)

總結:

強制類型轉換這種方式如果上游系統不是自己團隊的盡量不要使用,很容易因為數據類型不一致轉換報錯。

object.toString()

object.toString()對空格、空字符串、其他數據類型都可以進行轉換。需要注意,值為null時的空指針異常。

 /**  * toString()  */ mapParams.put("type", null); System.out.println("toString()轉換的結果為:" + mapParams.get("type").toString());

運行結果為:

Exception in thread "main" java.lang.NullPointerException     at com.alipay.demo.StringTest.main(StringTest.java:39)

總結:

我們在使用object.toString()需要對獲取的value值先進行null的判斷再轉換。值為null的場景有兩種情況:key對應的value值為null或者map中不存在這個key值。

Stirng.valueOf(object)

Stirng.valueOf(object)可以對null、空格、空字符串、其他數據類型進行轉換,是一個比較安全的轉換方法。

需要注意的是當值為null的時候該方法會轉換為"null",這個值會影響業務后續的非空判斷。

我們查看Stirng.valueOf()方法的源碼:

public static String valueOf(Object obj) {        return (obj == null) ? "null" : obj.toString();    }

valueOf()方法本質是使用的obj.toString(),對于可能存在的空指針異常進行了判斷規避。

但是轉換的"null"可能會對我們的業務進行干擾,在使用這個方法的時候需要先判斷結果是否為null再進行轉換,當然如果沒有業務允許也可以不進行判斷。

 /**  * Stirng.valueOf(object)  */ mapParams.put("type", null); System.out.println("Stirng.valueOf(object)轉換的結果為:" + String.valueOf(mapParams.get("type"))); System.out.println(String.valueOf(mapParams.get("type")) == null); System.out.println("null".equals(String.valueOf(mapParams.get("type"))));

運行結果為:

Stirng.valueOf(object)轉換的結果為:null false true

總結:

Stirng.valueOf(object)是比較安全的轉換方式,但是需要特別注意當值為null的時候轉換為"null",避免對業務進行干擾,在使用的時候最好是加上判斷。

""+object

""+object此方法是利用字符串的拼接特點將其他類型的數據轉換為字符串,它和Stirng.valueOf(object)類似不用考慮空格、空字符串、null、和其他數據類型,但是需要注意當值為null的時候會轉換為"null"。

 /**  * ""+object  */ mapParams.put("type", null); System.out.println(""+mapParams.get("type")); System.out.println((""+mapParams.get("type")) == null); System.out.println("null".equals((""+mapParams.get("type"))));

運行結果為:

null false true

看完上述內容,你們對如何使用Object轉String有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

温泉县| 满洲里市| 瑞丽市| 英吉沙县| 浮梁县| 济宁市| 天水市| 通榆县| 社旗县| 项城市| 四川省| 昭觉县| 双桥区| 泰宁县| 城市| 洪江市| 上杭县| 谢通门县| 枣庄市| 富顺县| 鲜城| 土默特左旗| 定西市| 偏关县| 铜陵市| 黑水县| 普安县| 宕昌县| 兰坪| 太原市| 库伦旗| 唐山市| 成安县| 永年县| 双流县| 洪江市| 南康市| 台中县| 西昌市| 松溪县| 西贡区|