亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何使用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

丽江市| 康平县| 泊头市| 临沭县| 堆龙德庆县| 铜陵市| 当涂县| 乳山市| 虎林市| 靖西县| 清远市| 山西省| 托克托县| 广河县| 汕尾市| 星子县| 慈溪市| 霍城县| 剑川县| 攀枝花市| 囊谦县| 文山县| 隆安县| 永川市| 宁安市| 龙井市| 宁强县| 昌都县| 吴忠市| 合肥市| 富阳市| 双江| 成武县| 普安县| 大安市| 扎鲁特旗| 微博| 正阳县| 忻州市| 竹溪县| 定结县|