Effective Java 之-----返回零长度的数组或集合而不是null
Posted hunter_Cecil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,而是返回一个零长度的数组或者集合。
以上是关于Effective Java 之-----返回零长度的数组或集合而不是null的主要内容,如果未能解决你的问题,请参考以下文章
Java:Effective java学习笔记之 静态工厂方法的简单理解和使用