首页 > 代码库 > 【代码优化】返回0长度数组或者集合

【代码优化】返回0长度数组或者集合

        改掉你从C语言继承过来的习惯,我们在java中没理由返回类型为数组或者集合返回null。


private final List<Cheese> InStock =...;

public Cheese[] getCheeses() {

       if( InStock.size() ==0){

            return null;

       }

}

这种是我们经常使用的 返回的模式,这就带来在应用Cheese数组的时候 都需要判断数组是否为null。

Cheese[]  cheeses= shop.getCheeses();

if(cheeses! =null){

   ....

}

如果我们修改下,把数组为空或集合没有数据时候,返回一个0长度,这样就不会要在使用的时候判断

数组和集合是否为空了。


 有人认为;null返回值比0长度数组更好,因为它避免了分配数组需要的开销。

这个观点是站不住脚的,原因有两点。第一,在这个级别上的担心性能问题是不可取的,因为这个级别的性能消耗

是微不足道的; 第二,对于不返回任何元素对象有可能被自由的共享。


总之,返回类型为数组或者集合的方法 没理由返回null,我们使用返回0长度的数组或集合。