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,而是返回一个零长度的数组或者集合。

上一篇:【Android】5.1 按钮和文本框


下一篇:黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型