亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決從Map、JSONObject取不存在鍵值對時的異常情況

 更新時間:2022年07月06日 10:33:22   作者:koushr  
這篇文章主要介紹了解決從Map、JSONObject取不存在鍵值對時的異常情況,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

從Map、JSONObject取不存在鍵值對時異常

1.在Map中取不存在的鍵值對時不會報異常

只會返回null

@Test
?? ?public void testMap() {
?? ??? ?Map<String, Object> map = new HashMap<String, Object>();
?? ??? ?map.put("d", 10);
?? ??? ?Object b = map.get("c");
?? ??? ?System.out.println(b);
?? ?}
//打印結果是:null。

結論:從map中取出不存在的鍵值對時不會報異常,會返回null。

2.在JSONObject中取不存在的鍵值對時分兩種情況

利用jSONObject.get(Object key)方法及get(String key)取不存在的鍵值對時不會報異常,會返回null;但是利用jSONObject.getxxx(String key)方法取時會報空指針異常:

@Test
?? ?public void testJSONObject() {
?? ??? ?Map<String, Object> map = new HashMap<String, Object>();
?? ??? ?map.put("d", 10);
?? ??? ?JSONObject jSONObject = JSONObject.fromObject(map);
?? ??? ?int xx = jSONObject.getInt("d");
?? ??? ?System.out.println(xx);
?? ??? ?// 從jSONObject中用get(Object key)方法取出不存在的鍵值對時不會報異常,會返回null
?? ??? ?Object y = jSONObject.get("dd");
?? ??? ?System.out.println(y);
?? ??? ?// 從jSONObject中用getxxx(String key)方法取出不存在的鍵值對時報異常
?? ??? ?String y2 = jSONObject.getString("dd");
?? ??? ?System.out.println(y2);
?? ?}

對null處理時會報空指針異常:

@Test
?? ?public void testNull() {
?? ??? ?Object o = null;
?? ??? ?System.out.println(o);
?? ??? ?String s = (String) o;
?? ??? ?System.out.println(s);
?? ??? ?// System.out.println(s.getClass());
?? ??? ?User u = (User) o;
?? ??? ?System.out.println(u);
?? ??? ?// System.out.println(u.getClass());
?? ?}
//打印結果:
//null
//null
//null

分析可知:不管null是何種類型,Object null或者String null或者其他類型的null,調用getClass()方法時都會報空指針異常。

如果是Object null,則可以轉為其他類型的null,因為其他類型都是Object的子類。

但是其他類型的null不能隨便轉類型,除非是有父子關系的類型。

例如,如果String類型的想轉為User類型的,就會有編譯錯誤,說Cannot cast from String to User。

遍歷JSONObject獲取鍵值對

看代碼時遇到的,遍歷JSONObject,獲取鍵值對

Map<String, String> map = new HashMap<>();
JSONObject jsonObject = new JSONObject(jsonStr);//字符串轉換成JSONObject
//jsonStr,例如:"{\"key\":\"value\",\"key1\":\"value1\"}"
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext) {
?? ?String key = keys.next();//獲取key
?? ?String value = jsonObject.getString(key);//獲取value
?? ?map.put(key, value);
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • IDEA項目maven?project沒有出現plugins和Dependencies問題

    IDEA項目maven?project沒有出現plugins和Dependencies問題

    這篇文章主要介紹了IDEA項目maven?project沒有出現plugins和Dependencies問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java基礎之spring5新功能學習

    Java基礎之spring5新功能學習

    這篇文章主要介紹了Java基礎之spring5新功能學習,文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java并行處理的實現

    Java并行處理的實現

    并行計算一般是指許多指令得以同時進行的計算模式。本文主要介紹了Java并行處理的實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • springmvc前臺向后臺傳值幾種方式總結(從簡單到復雜)

    springmvc前臺向后臺傳值幾種方式總結(從簡單到復雜)

    今天小編就為大家分享一篇springmvc前臺向后臺傳值幾種方式總結(從簡單到復雜),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Java DriverManager.getConnection()獲取數據庫連接

    Java DriverManager.getConnection()獲取數據庫連接

    這篇文章主要介紹了Java DriverManager.getConnection()獲取數據庫連接,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 利用5分鐘快速搭建一個springboot項目的全過程

    利用5分鐘快速搭建一個springboot項目的全過程

    Spring Boot的監(jiān)控能夠使開發(fā)者更好地掌控應用程序的運行狀態(tài),下面這篇文章主要給大家介紹了關于如何利用5分鐘快速搭建一個springboot項目的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • springboot tomcat的maxHttpFormPostSize參數示例解析

    springboot tomcat的maxHttpFormPostSize參數示例解析

    這篇文章主要介紹了springboot tomcat的maxHttpFormPostSize參數示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • java遞歸實現復制一個文件夾下所有文件功能

    java遞歸實現復制一個文件夾下所有文件功能

    這篇文章主要介紹了java遞歸實現復制一個文件夾下所有文件功能n次,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • SpringBoot?Admin集成診斷利器Arthas示例實現

    SpringBoot?Admin集成診斷利器Arthas示例實現

    這篇文章主要為大家介紹了SpringBoot?Admin集成診斷利器Arthas示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Java編寫緩存工具類的示例代碼

    Java編寫緩存工具類的示例代碼

    這篇文章主要為大家詳細介紹了如何基于Java編寫一個緩存工具類,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-07-07

最新評論