我嘗試將Employee類的對象添加到TreeSet。我沒有實現Comparable或Comparator接口。但是添加方法代碼在不同的系統中表現不同。爲什麼這樣?下面的代碼片段: - 我爲什麼TreeSet的add方法在不同的JRE中表現不同?
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
Set<Employee> set = new TreeSet<Employee>();
set.add(new Employee());
// set.add(new Employee());
// set.add(new Employee());
}
}
當前系統(10場),無論是寫set.add()方法一次或三次。它總是在運行時拋出ClassCastException。 但是這個問題的談話 - Why does TreeSet throws ClassCastException 用戶在那裏寫道,他沒有得到例外時,他只使用添加方法一次。另外,在另一個系統(Win 7)中,昨天我嘗試添加對象3次,調用set方法三次,並且沒有ClassCastException! set的大小隻有1,所以看起來好像多個對象沒有被添加到set中。
那麼,add方法的不同種類的行爲可能是什麼原因呢?
如果有的話,這將是JRE版本,而不是Windows版本。 – shmosel
@shmosel是的,所以我猜不同的窗口版本也會有不同的JRE。 – shanti
他們可能或不可以。你爲什麼不檢查? – shmosel