天天看點

Java中Optional使用注意事項

Java中Optional使用注意事項

之前遇到過使用Optional之後帶來的隐含bug,現在強調記錄一下不好的用法,防止錯用。

這點尤為重要,即類要純粹。如果是POJO就原始類型就可以了,如果是領域對象,則更不應該使用Optional作為field。

另一種不太适合使用Optional的情況是将該類型作為方法或者構造函數的參數,這将導緻不必要的代碼複雜化。

相反,使用方法重載(method overloading)來處理非強制性參數要友善得多。

級聯調用是危險的,很容易産生空指針。比如

在傳統做法裡,

使用Optional可以精簡代碼,降低複雜度:

Optional類對我們最有幫助的一個用例是同Stream或者其他方法組合使用,這些方法會傳回一個可建構流暢API的Optional值。如果僅僅作為判空,那麼不要使用Optional,直接判null就好。

比如,使用Stream 的Optional對象的例子:

關于作者:

唯有不斷學習方能改變!

-- <b>Ryan Miao</b>