在上篇文章Java8新特性指導手冊中簡單的提了一下如何通過Optional類來對對象做空校驗。接下來,我們再細說一下:
業(yè)務(wù)中,假設(shè)我們需要獲取Outer對象對底層的Inner中的foo屬性,我們必須寫一堆的非空校驗,來防止發(fā)生NullPointerException:
通過Optional
在Java8中,我們有更優(yōu)雅的解決方式,那就是使用Optional是說,我們可以在一行代碼中,進行流水式的map操作。而map方法內(nèi)部會自動進行空校驗:
通過suppiler函數(shù)自定義方法
上面這種方式個人感覺還是有點啰嗦,我們可以利用suppiler函數(shù)來出一個終極解決方案:
利用上面的resolve方法來重構(gòu)上述的非空校驗代碼段:
最后
你需要知道的是,上面這兩個解決方案并沒傳統(tǒng)的null檢查性能那么高效。但在絕大部分業(yè)務(wù)場景下,舍棄那么一丟丟的性能來方便編碼,是完全可取,除非是那種對性能有嚴格要求的,我們才不建議使用。
以上就是天津卓眾教育java培訓機構(gòu)的小編針對“Java基礎(chǔ)學習:java空指針異常避免”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Java基礎(chǔ)學習