首頁 / CompScience / Programming / Languages / java / Java synchronizedList

Java synchronizedList

這個函式是Collections類別的一個方法,為什麼要特別提出來呢?主因是我在看SCJP Java 6專業認證手冊(附光碟)這本書的第9章執行緒的部份有個範例:

import .util.*;
public class NameList {
    private List names = Collections.(new LinkedList());
    public void add(String name) {
        names.add(name);
    }
    public String removeFirst() {
        if(names.size()>0)
            return (String)names.remove(0);
        else
            return null;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}

這個範例出現了這樣錯誤:

The method synchronizedList(List<T>) in the type Collections is not applicable for the arguments (LinkedList)

很奇怪吧!這一本課本也有出錯的時候,查了一下這個函式,發現在Std. Ed. v1.4.2的時候定義是這樣:

synchronizedList(List list)
          Returns a synchronized (thread-safe) list backed by the specified list.

但是到了Standard Ed. 5.0時候,定義已經變成:

synchronizedList(List<T> list)
          Returns a synchronized (thread-safe) list backed by the specified list.

所以我在想終於被我發現到課本沒有隨著Java更新到SCJP 6喔!Bug!

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top