博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第43条:返回零长度的数组或者集合,而不是null
阅读量:6770 次
发布时间:2019-06-26

本文共 836 字,大约阅读时间需要 2 分钟。

private final List
cheesesInStock = ...;public Cheese[] getCheese() { if(cheesesInStock.size() == 0) return null; ...}

如果返回null,

在客户端处理代码就需要有额外的代码来处理null返回值:

Cheese[] cheeses = shop.getCheeses();if(cheeses != null && Arrays.asList(cheese).contains(Cheese.STILTON))    System.out.println("Jolly good");}

而不是:

Cheese[] cheeses = shop.getCheeses();if( Arrays.asList(cheese).contains(Cheese.STILTON))    System.out.println("Jolly good");}

 

认为null返回值比零长度数组更好,因为避免了分配数组所需要的开销,是不对的。

1.除非分析表明这是方法的确影响了性能

2.对于不返回任何类型调用,返回同一个零长度数组是可能的

 

Collections类提供当需要空集合时都返回同一个不可变的空集合的方法:

public List
getCheeseList() { if(cheeseInstock.isEmpty)) { return Collections.emptyList(); else return new ArrayList
(cheesesInStock);}

 

转载于:https://www.cnblogs.com/13jhzeng/p/5745744.html

你可能感兴趣的文章
Zookeeper之——关于Zookeeper的那些事
查看>>
iOS中cell自适应高度
查看>>
蒲京博士为第七届环海南岛国际大帆船赛创造历史
查看>>
记一次负载均衡+NFS博客站点搭建的总结
查看>>
我不再像两年前那样勇敢
查看>>
计算机linux系统 第一课
查看>>
8月27日科技联播:滴滴5000亿上市计划或受影响,高德地图暂时下线顺风车业务...
查看>>
网站漏洞修复对phpmyadmin防止被入侵提权的解决办法
查看>>
Exchange 2013服务器常用的性能监视器
查看>>
详解linux运维工程师入门级必备技能
查看>>
ElsticStake安装之Logstash6.4.0 安装(二)
查看>>
XenServer安装最佳实践
查看>>
电动汽车锂电池容量选择
查看>>
mongodb的基本语法
查看>>
网络基础
查看>>
产品入库与倒冲领料不匹配查询
查看>>
配置percona XtraDB Cluster
查看>>
mysql+php+pdo批量添加大数据
查看>>
Systemstate Dump分析经典案例(上)
查看>>
在中国,有多少程序员干到40了?那么其他人去干什么了?
查看>>