第54项:返回长度为零的数组或者集合,而不是null

在编程中,返回null而不是空数组或集合可能导致客户端代码需要额外处理,增加错误风险。通常,应返回空的容器或数组,而不是null。即使在性能考虑下,返回空集合或数组也不涉及额外开销,因为可以复用不可变的空实例。对于数组,同样应返回零长度的数组,而不是null,以避免性能损耗和错误。优化时,可以重复返回相同的空数组,但应先验证是否真正需要这种优化,以免适得其反。
摘要由CSDN通过智能技术生成

  像下面这样的方法并不少见:

// Returns null to indicate an empty collection. Don’t do this!
private final List<Cheese> cheesesInStock = ...;
/**
 * @return a list containing all of the cheeses in the shop,
 * or null if no cheeses are available for purchase.
 */
public List<Cheese> getCheeses() {
   
    return cheesesInStock.isEmpty() ? null : new ArrayList<>(cheesesInStock);
}

  把没有奶酪(cheese)可买的情况当作是一种特例,这是不合常理的。这样做会要求客户端中必须有额外的代码来处理null返回值,例如:


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值