情况就是这样,我有两个类A
,B
和一个通用接口C
Class A implements Comparable<A> {...}
interface C<T> {...}
//this class is not longer generic type, I do not know if this matter.
Class B extends A implements C<A> {...}
然后,在其他班级,我得到了一个B
List 并按如下方式排序
List<B> list = new ArrayList<B>();
Collections.sort(list);
这完美地工作,但现在我想将列表更改为B
通用接口C
,以便它可以更通用。
List<C<A>> list = new ArrayList<C<A>>();
Collections.sort(list);
这次我得到如下错误:
sort(List<T>)
绑定不匹配:类型的泛型方法Collections
不适用于 arguments(List<C<A>>)
。推断的类型C<A>
不是有界参数的有效替代品<T extends Comparable<? super T>>
我尝试了以下修改(当然不起作用):
- 更改
C
为interface C<T> extends Comparable<T>{...}
- 更改
B
为class B extends A implements C<A>, Comparable<T> {...}
有谁能够帮我?