推断类型不是可比较泛型类型的有效替代项
考虑以下代码:
public abstract class Item<T> implements Comparable<T>
{
protected T item;
public int compareTo(T o)
{
return 0; // this doesn't matter for the time being
}
}
public class MyItem<T> extends Item<String>
{
T object;
}
public class Foo<T>
{
protected ArrayList<T> list;
}
public class Bar<V> extends Foo<MyItem<V>>
{
public void sort()
{
Collections.sort(list);
}
}
排序调用给出错误:
绑定不匹配:集合类型的泛型方法 sort(List< T >) 不适用于参数 (ArrayList< MyItem< T > >)。推断类型 MyItem< T >不是有界参数的有效替代物,< T 扩展了可比< ?超级T> >
为什么这是错的?
如果实现,那么为什么它不是替代品?MyItem<V>
Comparable
很抱歉,如果有人问过这个问题,但我觉得这个问题有些具体。