Item 55: 谨慎返回 Optional 对象
💡
原文约500字/词,阅读约需2分钟。
📝
内容提要
Java 8 引入了 Optional 类,避免了 null 并简化了缺失值的处理。它允许客户端决定在值缺失时该怎么做。实用的方法包括 of()、ofNullable()、orElse()、orElseThrow()、map()、flatMap() 和 filter()。避免在集合中使用 Optional,并考虑性能影响。提供了代码使用示例。
🎯
关键要点
- Java 8 引入了 Optional 类,避免了 null 并简化了缺失值的处理。
- Optional 是一个不可变的容器,可以包含一个值或为空。
- 使用 Optional 可以避免 NullPointerException 和其他与 null 相关的问题。
- Optional 提供了多种方法,如 of()、ofNullable()、orElse()、orElseThrow()、map()、flatMap() 和 filter()。
- 避免在集合中使用 Optional,建议返回空集合。
- 使用 Optional 会有对象分配的性能开销,建议对基本类型使用 OptionalInt、OptionalLong 和 OptionalDouble。
- 避免将 Optional 用作 Map 的键或值,或作为实例字段,除非在可选 getter 中有意义。
- 提供了多个代码示例,展示了如何使用 Optional 处理缺失值。
➡️