假設(shè)我們有一個像這樣的類層次結(jié)構(gòu):
解決這種結(jié)構(gòu)的深層嵌套路徑是有點麻煩的。我們必須編寫一堆 null 檢查來確保不會導致一個 NullPointerException:
我們可以通過利用 Java 8 的 Optional 類型來擺脫所有這些 null 檢查。map 方法接收一個 Function 類型的 lambda 表達式,并自動將每個 function 的結(jié)果包裝成一個 Optional 對象。這使我們能夠在一行中進行多個 map 操作。Null 檢查是在底層自動處理的。
還有一種實現(xiàn)相同作用的方式就是通過利用一個 supplier 函數(shù)來解決嵌套路徑的問題: