第54条 - 返回空集合或数组,而不是null
💡
原文约300字/词,阅读约需2分钟。
📝
内容提要
不要返回null,而是返回空的集合或数组。返回null需要额外的客户端处理,容易出错。应该使用空的集合或数组来代替null,可以提高性能。使用不可变的空集合或数组可以避免不必要的内存分配。总之,不要返回null,而是返回空的集合或数组。
🎯
关键要点
- 不要返回null,而是返回空的集合或数组。
- 返回null需要额外的客户端处理,容易出错。
- 客户需要添加冗余检查来避免异常。
- 忽略这些检查可能导致错误。
- 返回null会使实现方法变得困难。
- 除非证明是性能瓶颈,否则不必担心空集合或数组的分配性能。
- 使用空集合或数组代替null。
- 不可变的集合可以重复返回,避免不必要的内存分配。
- 返回相同的空数组,而不是每次都创建新的。
- 示例代码中展示了错误和正确的返回方式。
- 结论:永远不要返回null,始终优先返回空集合或数组,以简化API,避免错误,并且对性能影响很小。
❓
延伸问答
为什么不应该返回null而是返回空集合或数组?
返回null需要额外的客户端处理,容易出错,而返回空集合或数组可以简化API并避免错误。
返回空集合或数组对性能有影响吗?
除非证明是性能瓶颈,否则不必担心空集合或数组的分配性能。
如何正确返回空集合或数组?
可以使用Collections.emptyList()或Collections.emptySet()来返回不可变的空集合,或者返回一个空数组。
返回null会导致什么问题?
返回null会使客户端需要添加冗余检查,忽略这些检查可能导致异常和错误。
使用不可变集合有什么好处?
不可变集合可以重复返回,避免不必要的内存分配,提高性能。
示例代码中如何处理返回空集合的情况?
示例代码中使用了条件判断,如果集合为空则返回Collections.emptyList(),否则返回实际的集合。
➡️