本帖最后由 罗全涛 于 2011-12-30 12:38 编辑
如果要放入多个实例对象,一般会用到TreeSet(Collection<? extends E> c) 泛型已经限定了传入的类型,再有关于泛型的混淆,一个常见的来源就是假设它们像数组一样是协变的。其实它们不是协变的。。List<Object> 不是 List<String> 的父类型。
如果 A 扩展 B,那么 A 的数组也是 B 的数组,并且完全可以在需要 B[] 的地方使用
A[]:
Integer[] intArray = new Integer[10];
Number[] numberArray = intArray;
上面的代码是有效的,因为一个 Integer 是 一个 Number,因而一个 Integer 数组是 一个 Number 数组。但是对于泛型来说则不然。下面的代码是无效的:
List<Integer> intList = new ArrayList<Integer>();
List<Number> numberList = intList; // invalid
所以你说的同时放入了父类和子类的实例对象,我觉得是不存在的。至于调用谁的compartTo就不用探讨了。
|