码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-06-28 20:20:50      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

如下代码,通常用户列表为空时,会习惯性返回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,而是返回一个零长度的数组或者集合。

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

标签:

原文地址:http://www.cnblogs.com/hunterCecil/p/5624782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!