91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Collections.EMPTY_LIST與Collections.emptyList()的區別有哪些

發布時間:2021-11-16 17:20:42 來源:億速云 閱讀:191 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Java中Collections.EMPTY_LIST與Collections.emptyList()的區別有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Collections.EMPTY_LIST與Collections.emptyList()的區別

Collections.EMPTY_LIST返回的是一個空的List。為什么需要空的List呢?有時候我們在函數中需要返回一個List,但是這個List是空的,如果我們直接返回null的話,調用者還需要進行null的判斷,所以一般建議返回一個空的List。

Collections.EMPTY_LIST返回的這個空的List是不能進行添加元素這類操作的。這時候你有可能會說,我直接返回一個new ArrayList()唄,但是new ArrayList()在初始化時會占用一定的資源,所以在這種場景下,還是建議返回Collections.EMPTY_LIST。

Collections. emptyList()返回的也是一個空的List,它與Collections.EMPTY_LIST的唯一區別是,Collections. emptyList()支持泛型,所以在需要泛型的時候,可以使用Collections. emptyList()。

Collections.EMPTY_MAP和Collections.EMPTY_SET同理。

Collections.EMPTY_LIST的實現代碼

/**
     * The empty list (immutable).  This list is serializable.
     *
     * @see #emptyList()
     */
    @SuppressWarnings("unchecked")
    public static final List EMPTY_LIST = new EmptyList<>();

Collections. emptyList()的實現代碼

 /**
     * Returns the empty list (immutable).  This list is serializable.
     *
     * <p>This example illustrates the type-safe way to obtain an empty list:
     * <pre>
     *     List<String> s = Collections.emptyList();
     * </pre>
     * Implementation note:  Implementations of this method need not
     * create a separate <tt>List</tt> object for each call.   Using this
     * method is likely to have comparable cost to using the like-named
     * field.  (Unlike this method, the field does not provide type safety.)
     *
     * @see #EMPTY_LIST
     * @since 1.5
     */
    @SuppressWarnings("unchecked")
    public static final <T> List<T> emptyList() {
        return (List<T>) EMPTY_LIST;
}

使用Collections.emptyMap()引起的一個奇怪的問題

以下是控制臺信息

Java中Collections.EMPTY_LIST與Collections.emptyList()的區別有哪些

第二行是很不起眼的一條異常信息,不知為何沒有把整個錯誤堆棧輸出。

一開始沒有注意到這條異常信息,于是設斷點,調試,結果每次執行幾句就莫名其妙地轉入ThreadPoolExecutor中執行。

最后注意到上面的異常信息后,發現對一個類型為Map的成員變量初始化有問題:

protected Map<String, String> optionalStrParams = Collections.emptyMap();

如此修改:

protected Map<String, String> optionalStrParams = new HashMap<String, String>();

我的本意是初始化為一個空的Map,EmptyMap在此場景下不合適。

關于“Java中Collections.EMPTY_LIST與Collections.emptyList()的區別有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙陵县| 鹤岗市| 莆田市| 商洛市| 法库县| 蚌埠市| 莒南县| 广德县| 莆田市| 阿尔山市| 义马市| 齐河县| 栾城县| 夏河县| 荥经县| 监利县| 赤城县| 南安市| 璧山县| 兴和县| 微山县| 麻江县| 保亭| 齐齐哈尔市| 东台市| 札达县| 卢龙县| 长丰县| 长寿区| 金川县| 康乐县| 自贡市| 霞浦县| 阿城市| 闸北区| 房产| 昂仁县| 夏邑县| 鄢陵县| 锡林浩特市| 巩留县|