什么是Optional
Optional
使用场景
在java8之前,当无法返回值时候,我们可以抛出异常,或者返回null;这两种方法都有缺陷,创建异常的时候会捕捉整个堆栈轨迹,开销很大;返回null的时候,少有处理不慎就会发生NullPointException;Optional允许返回空的结果,则显得更加灵活容易并且不容易出错;
当无法返回结果并且当没有返回结果时客户端必须执行特殊处理时,那么就应该声明该方法返回Optional
例子
根据元素的自然排序,计算集合中的最大值
注意事项
- 永远不要通过返回Optional的方法返回null,因为这违背了optional的本意;
- 容器类型不应该包装在optional中;
- 永远不应该返回基本包装类型的optional,可以使用OptionalInt,OptionalLong,OptionalDouble等;
- 尽量不要将Optional用作返回值以外的任何其他用途;
閱讀更多 安全獁 的文章