Java8 謹慎返回Optional

什麼是Optional

Java8 謹慎返回Optional

源碼中的註解

Java8 謹慎返回Optional

源碼

Optional類代表的是一個不可變的容器,可以存放單個非null的引用(present)或者什麼也不存(empty);

使用場景

在java8之前,當無法返回值時候,我們可以拋出異常,或者返回null;這兩種方法都有缺陷,創建異常的時候會捕捉整個堆棧軌跡,開銷很大;返回null的時候,少有處理不慎就會發生NullPointException;Optional允許返回空的結果,則顯得更加靈活容易並且不容易出錯;

當無法返回結果並且當沒有返回結果時客戶端必須執行特殊處理時,那麼就應該聲明該方法返回Optional

例子

根據元素的自然排序,計算集合中的最大值

Java8 謹慎返回Optional

來源:《Effective Java》

注意事項

  1. 永遠不要通過返回Optional的方法返回null,因為這違背了optional的本意;
  2. 容器類型不應該包裝在optional中;
  3. 永遠不應該返回基本包裝類型的optional,可以使用OptionalInt,OptionalLong,OptionalDouble等;
  4. 儘量不要將Optional用作返回值以外的任何其他用途;


分享到:


相關文章: