第55条:谨慎返回optional。
- 集合、映射、Stream、数组、Optional都不应该包装在Optional中。
- 如果无法返回结果并且当没有返回结果时客户端必须执行特殊得处理,那么就应该声明这个方法返回Optional<T>。
- Optional会有一定的性能开销,如果注重性能则需要慎重考虑Optional。
- 永远不应该返回基本包装类型的Optional。
- 尽量不要把Optional用作返回值以外的其它用途。
- Optional是一个必须进行分配和初始化的对象,从optional读取值时需要额外的开销。这使得optional不适用于一些注重性能的情况。
平时写代码的时候一般用到Optional的时候要么是和Stream一起,要么是使用Optional.ofNullable来处理一些可能为空的值,通过orelse可以避免分类讨论。单独使用确实比较少,更别提当做返回结果了。我感觉拿到Optional以后还是需要考虑空的问题,这比直接返回null可能好在强制用户去处理可能的空值?而且Optional.of完全无法接受null,所以使用Optional的时候还是需要慎重。
网友评论