Effective Java - 谨慎返回optional

第55条 谨慎返回optional

  1. 集合、映射、Stream、数组、Optional都不应该包装在Optional
  2. 如果无法返回结果并且当没有返回结果时客户端必须执行特殊得处理,那么就应该声明这个方法返回Optional
  3. Optional会有一定的性能开销,如果注重性能则需要慎重考虑Optional
  4. 永远不应该返回基本包装类型的Optional
  5. 如果发现自己在编写的方法并不会一直有返回值,并且该方法的调用者都需要考虑没有返回值的可能性,这个方法或许应该返回Optional。如果注重性能最好返回null或者直接抛出异常
  6. 尽量不要把Optional用作返回值以外的其它用途

思考

之前讨论过返回值要不要是Optional,现在来看其实Optional有非常大的优点。直接返回null容易导致NPE,如果抛出异常的话还需要调用方手动catch。并且如果调用者没有翻看实现,方法上也没有标注这个方法会抛出异常的话,会block住后面的主流程。

返回Optional就可以表达出来不一定有返回值的情况,提醒调用者需要判断为空的场景

你可能感兴趣的:(Effective Java - 谨慎返回optional)