下面的列表是這樣的,我有兩個班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<B> list = new ArrayList<B>();
Collections.sort(list);
這工作完全,但現在我想的B
列表更改爲通用接口C
,使其可以更加普遍。
List<C<A>> list = new ArrayList<C<A>>();
Collections.sort(list);
這一次我得到了錯誤如下:
約束不匹配:
Collections
類型的通用方法sort(List<T>)
不 適用於參數(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> {...}
可以任何人他LP我?
我明白了你的觀點。有用。謝謝。 – user1817188