黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 編程基礎Java空指針異常

編程基礎Java空指針異常

更新時間:2020-07-31 16:03:02 來源:動力節點 瀏覽2406次

在平時的業務開發中,空值處理是非常麻煩的,Java中的空指針異常讓人崩潰,每次看到日志中出現的那些NPE Error日志,都讓人痛不欲生。為了避免這么多空指針異常,你的Java程序中是不是遍布著null檢查?

編程基礎Java空指針異常

null是一個討厭鬼

null語義不明,通常null什么都不能代表,而又什么都能代表。如果你不檢查,空指針異常必定會在最關鍵的時候蹦出來。

比如說:

對于集合類型來說,空有兩種含意:

1、變量是空引用,也就是變量沒指向一個集合類型。

2、集合中元素數量為0。

所以經常我們要做如下的檢查

list!=null&&list.size()>0

那我們就像上面一樣在每一處都做空值檢查如何呢?理論上可以,但是實際實行時卻困難重重,可能會引起如下的問題:

增加代碼長度

問題:大部分代碼都是在檢查空值上面;一個方法30行代碼,有10行是檢查各種參數,10行進行異常處理,5行進行業務處理,再寫5幾行注釋。你是這是什么事兒啊。

減少寫代碼的樂趣

問題:注意力集中的時間段是非常寶貴的。現在的互聯網公司,辦公區開放、各部門都混坐一起,如果你跟產品和運營坐在一起,那么你從早到晚不停的被打擾,8小時工作時間能集中精力3個小時已經很不容易了。而這短短的有效時間內,還要編寫大量的防御性代碼,別人不知道,對于我來說,大量編寫這樣的代碼經常會讓我思路分散,反而導致我在真正的業務代碼上面出錯。

這個問題怎么破

實話是:很難破

多年編碼后也僅僅總結了幾個規約,可以減輕空值帶來的痛苦:

對于空值最常用的辦法就是:不相信任何輸入輸出值,每一個關鍵的參數都需要檢查。關鍵的意思是:如果為空就影響業務處理了。

如果集合中沒有元素,使用size為0的空集合對象,不要使用null。

除非null有特殊含意,方法返回的普通對象都不為null。如:從數據庫查找對象的方法,如:findById,返回null表示沒有找到對象。

使用基本的值類型,而不使用包裝過的類型,如:使用int double等等,不使用Integer

免不了有null時,使用guava中的Optional對象,據說可以方便的檢查和操作null,JDK8以后也在java.util包中增加了Optional對象。但是實際它的作用更多的是提醒程序員要注意空值處理而已。

集合對象中不保存null。

Map中不保存value為null的K-V對兒,也不用null做key。

使用高效工具對入參為null進行檢查,如Spring中的Asserts工具類,Guava中的Preconditions工具類;

編程基礎Java空指針異常

以上就是動力節點java培訓機構的小編針對“編程基礎Java空指針異常”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产欧美日韩一区二区三区在线 | 特一级黄色 | 欧美母乳| 亚洲深夜福利视频 | 精品国产一区二区三区免费 | 午夜久久网 | 国内精品福利在线视频 | 国产三级精品三级在专区中文 | 色婷婷色综合激情国产日韩 | 高清视频一区二区三区 | 国产精亚洲视频 | 亚洲国产日韩在线 | 国产精品久久久久乳精品爆 | 欧美一级精品高清在线观看 | 亚洲国产婷婷综合在线精品 | 西西人体大胆77777视频 | 天天综合五月天 | 午夜宅男宅女的免费网站 | 波多野结衣在线观看视频 | 亚洲精品免费在线视频 | 免费理伦 | 亚洲精品性夜夜夜 | 波多野结衣在线免费观看视频 | 全免费一级毛片在线播放 | 欧美成人私人视频88在线观看 | 国产精品欧美亚洲韩国日本 | 天天看片天天爽_免费播放 天天看片夜夜爽 | 亚洲成av人影片在线观看 | 中文精品久久久久国产网址 | 在线a人片免费观看国产 | 欧美日韩国产精品综合 | 欧美一级黄色片视频 | 欧美精彩狠狠色丁香婷婷 | 日韩视频免费 | 欧美日韩亚洲成人 | 久久天天躁夜夜躁狠狠85麻豆 | 日本成人a视频 | 国产成人黄网在线免 | 亚洲欧美日韩国产综合久 | 亚洲精品线在线观看 | 日韩高清不卡 |