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用作返回值以外的任何其他用途;


分享到:


相關文章: