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

来源:互联网 发布:java action配置 编辑:程序博客网 时间:2024/06/05 03:19
/** * 返回零长度的数组或者集合,而不是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");        }    }}
1 0
原创粉丝点击