例如当第二个对象被添加到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