这个函式是Collections类别的一个方法,为什么要特别提出来呢?主因是我在看SCJP Java 6专业认证手册(附光碟)这本书的第9章执行绪的部份有个范例:
import java.util.*;
public class NameList {
private List names = Collections.synchronizedList(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!