
不要返回 null:
返回 null 代替空集合或数组的方法需要额外的客户端处理以避免异常。
null 问题:
客户端需要添加冗余检查(如果要检查 null)。这些检查中的遗漏可能会被忽视,从而导致错误。这使得返回集合或数组的方法很难实现。
反对 null 的论证:
不要担心分配空集合或数组的性能,除非它被证明是瓶颈。
高效替代方案:
使用空集合或数组而不是 null。不可变集合可以重复返回(例如:collections.emptylist()、collections.emptyset())。空数组也可以高效返回。
优化性能:
使用可重用的空不可变集合来避免不必要的新分配。返回相同的空数组,而不是每次创建一个新数组
代码示例:
返回 null 的错误方法:
// exemplo incorretopublic list getcheeses() { return cheesesinstock.isempty() ? null : new arraylist(cheesesinstock);}
客户待遇不足:
集简云
软件集成平台,快速建立企业自动化与智能化
22 查看详情
list cheeses = shop.getcheeses();if (cheeses != null && !cheeses.isempty()) { // lógica para lidar com queijos disponíveis}
返回空集合的正确方法:
// exemplo corretopublic list getcheeses() { return cheesesinstock.isempty() ? collections.emptylist() : new arraylist(cheesesinstock);}
使用不可变的空集合:
public list getcheeses() { return cheesesinstock.isempty() ? collections.emptylist() : new arraylist(cheesesinstock);}
与空数组一起使用:
// retorno de array vazio corretamentepublic cheese[] getcheeses() { return cheesesinstock.toarray(new cheese[0]);}
空数组的优化使用:
private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];public Cheese[] getCheeses() { return cheesesInStock.toArray(EMPTY_CHEESE_ARRAY);}
结论:
永远不要返回 null:总是更喜欢空集合或数组。这简化了 api,防止错误,并且很少对性能产生负面影响。
以上就是Item – 返回空集合或数组而不是 null的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/476148.html
微信扫一扫
支付宝扫一扫