zoukankan      html  css  js  c++  java
  • 第43条:返回零长度的数组或者集合,而不是null

    private final List<Cheese> 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<Cheese> getCheeseList() {
        if(cheeseInstock.isEmpty)) {
            return Collections.emptyList();
        else
            return new ArrayList<Cheese>(cheesesInStock);
    }
  • 相关阅读:
    矿Mac必备软件
    PHP第六课 使用方法数组
    I/O概述和审查操作
    应用程序配置文件
    他毕业两年,博客一年,时间
    苹果公司的回复
    CImage类的介绍与使用
    数据库移植遇到的问题
    MP算法和OMP算法及其思想
    ROR 环境的 搭建
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5745744.html
Copyright © 2011-2022 走看看