返回零长度的数组或者集合,而不是null——Effective Java 读书笔记
/**
* 返回零长度的数组或者集合,而不是null
*
* @author 刘向峰
*
*/
public class Shop {
private List<Object> objectList;
// 零长度数组常量被传递给toArray方法,以指明所期望的返回类型
private final static Object[] EMPTY_OBJECT_ARRAY = new Object[0];
public Shop(List<Object> objectList) {
super();
this.objectList = objectList;
}
/**
*
* @return an array containing all of the object in the shop
*/
public Object[] getObjects() {
// 如果集合是空的,他将使用零长度的输入数组-->否则,这种做法永远不会分配零长度的数组
return objectList.toArray(EMPTY_OBJECT_ARRAY);
}
/**
*
* @return a copy of collection
*/
public List<Object> getStringList() {
if (objectList.isEmpty()) {
return Collections.emptyList();
} else {
return new ArrayList<Object>(objectList);
}
}
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
List<Object> newObjectList = Collections.emptyList();
// newObjectList = new ArrayList<Object>();
Object object = new Object();
// newObjectList.add(object);
Shop shop = new Shop(newObjectList);
// 不需要判断shop.getObjects()的值是否为空
if (Arrays.asList(shop.getObjects()).contains(object)) {
System.out.println("jolly good, just the thing");
}
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。