原文:http://www.javaeye.com/topic/569993
对于常见业务方法返回List对象时一般有二种方法:
1、返回含数据的数据的List对象,该对象可能为空
2、返回null
如下方法:
public List returnArray2(Object data){
if(data != null){
return (List) data;
}
return null;
}
if(data != null){
return (List) data;
}
return null;
}
一般使用时,
List list = xxxx.returnArray2(data);
这时候list都将具体指向一个内存,如果返回值为空时,list指向一个null的空内存,这时我们又要对list进行是否为null进行判断,量大时就可能对程序造成瓶颈。文章作者的解决方法是用Collections工具类的empty系列静态方法解决。
既如下代码:
public List returnArray2(Object data){
if(data == null){
return Collections.emptyList();
}
return (List) data;
}
if(data == null){
return Collections.emptyList();
}
return (List) data;
}
此时如果为空返回的list将不存在为null的可能,并且empty系列方法是静态方法,所有引用都指向静态内存,不会生产和占用新的资源。不失为一个好的方法。
我们也可以自己编写自己的empty静态类,既每次都返回为空的静态的List、Map….对象。
我自己的一些理解,详细情况请大家访问原文和作者交流。
评论关闭。