• Effective Java 之-----返回零长度的数组或集合而不是null


    如下代码,通常用户列表为空时,会习惯性返回null,因为这时会认为:null返回值比零长度数组更好,因为它避免了分配数组所需要的开销。

    private final List<UserBean> UserList = null;
    
    public List<UserBean> getUserBean(){
        if(UserList.size() == 0){
            return null;
        }else{
            return UserList;
        }
    }
    

    但这种观点是站不住脚的,原因如下:

    1) 在这个级别上担心性能问题是不明智的,除非分析表明这个方法正是造成性能问题的真正源头;
    2) 对于不返回任何元素的调用,每次都返回一个零长度数组是有可能的,因为零长度的数组是不可变的,而不可变对象有可能被自由的共享。

    因此,可以返回零长度的集合如下:

    public List<UserBean> getUserBeanModify(){
        if(UserList.isEmpty()){
            return Collections.emptyList();
        }else{
            return UserList;
        }
    }
    

    综上,需注意的是,返回类型为数组或集合的方法没理由返回null,而是返回一个零长度的数组或者集合。

  • 相关阅读:
    mysql的四种隔离
    mysql-事物
    Mysql数据备份
    线程池
    springboot整合log4j2
    springboot项目部署
    数组去重
    倒叙输出算法
    使用LLDB和debugserver对ios程序进行调试
    Linux使用pyinstaller 编译py成可执行程序
  • 原文地址:https://www.cnblogs.com/hunterCecil/p/5624782.html
Copyright © 2020-2023  润新知