Optional 類已經在 java 8 中引入來處理 空指針問題,java 9 的發行爲 Optional 提供了新的方法html
Optional其實已經有兩個方法即orelse()和orelseget(),當Optional 爲空的時候,返回一個默認值。java
在使用orelse() 獲取默認值:api
在使用orElseGet()方法依靠Supplier function提供一個默認值:微信
而後咱們看看新方法,有點相似於 orElseGet ()的使用改進,可是能夠返回一個 Option 而不是一個簡單類型:oracle
原來使用isPresent()判斷是否有值,你可能寫下面的if-else 方法:spa
固然咱們還有一個isPresent()方法,接受 Consumer function :指針
ifPresentOrElse方法的改進就是有了else,接受兩個參數Consumer 和 Runnable:code
新的stream方法能夠將 Optional 轉化爲stream,若是Optional 有值,Stream 中包含這個值,若是Optional 爲空,那麼返回一個空的stream。htm
在java 8 中加入的Stream 能夠很好的處理集合的狀況,因此Optional中的是個集合就好辦了:get
參考:
https://www.callicoder.com/java-9-optional-api-enhancements/
有什麼討論的內容,能夠加我微信公衆號: