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

返回零长度的数组或者集合,而不是null——Effective Java 读书笔记

时间:2015-02-14 09:54:58      阅读:134      评论:0      收藏:0      [点我收藏+]

标签: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");
        }
    }
}

返回零长度的数组或者集合,而不是null——Effective Java 读书笔记

标签:java   零长度的数组或者集合   

原文地址:http://blog.csdn.net/lxf_44944/article/details/43816055

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