例如當第二個對象被添加到TreeSet時,下面的代碼拋出一個ClassCastException異常。無法編寫TreeSet以便類型參數只能是Comparable類型? 即 TreeSet不會編譯,因爲Object是不可比較的。這種方式實際上是他們的工作 - 類型安全。爲什麼Java的TreeSet沒有指定它的類型參數必須擴展Comparable?
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String [] args) {
TreeSet<Object> t = new TreeSet<Object>();
t.add(new Object());
t.add(new Object());
}
}
感謝您的全面回答。大聲笑,我認爲通用系統已經夠複雜了! – Tarski 2010-04-13 19:22:42