zoukankan      html  css  js  c++  java
  • 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,而是返回一个零长度的数组或者集合。

  • 相关阅读:
    ReactNative 打包 APK
    ReactNative常用命令
    ReactNative之坑:停在gradle一直出点
    Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构
    tensorflow 安装升级
    sqlserver 全库查询 带架构
    气象数据资料整理
    poj2841
    cf1430e
    cf1436d
  • 原文地址:https://www.cnblogs.com/hunterCecil/p/5624782.html
Copyright © 2011-2022 走看看