如果我创建一个未实现 Comparable 的任意类,并尝试将其用作树集,则在插入对象时它会在运行时引发异常:
public class Foo {
}
public TreeSet<Foo> fooSet = new TreeSet<Foo>();
fooSet.add(new Foo()); // Throws a ClassCastException exception here: Foo is not comparable
我不是 Java 专家,但是这方面的某些东西似乎是以一种我没有预料到的方式动态输入的(ala Python)。TreeSet 的实现有没有办法指定它的泛型类型参数必须实现 Comparable 以便可以在编译时捕获?非泛型函数可以将接口作为参数;泛型是不可能的吗?