[問題] Collections.sort一個interface List
是這樣的,我有兩個 class A,B 及一個 generic type interface C
Class A implements Comparable<A> {}
interface C<T> {}
Class B extends A implements C<A> {} //B 已非 generic type,我不知這有沒有關係
之後我弄出個 B List
List<B> list = new ArrayList<B>();
然後透過 Collections.sort(list);
這樣是 OK 的,因為 B 是 A 的子類別,也繼承了 compareTo() 方法。
但我現在想說是否可以直接對 C List 來 sort,這樣比較 generic,比如說
List<C<A>> list = new ArrayList<C<A>>();
Collections.sort(list);
這時會出現 error 如下
Bound mismatch: The generic method sort(List<T>) of type Collections is not
applicable for the arguments (List<C<A>>). The inferred type C<A> is not a
valid substitute for the bounded parameter <T extends Comparable<? super T>>
網路上找不太到相關資料,大部分的Collections中不會再有generic interface
我自己是亂試過把 C 改成 => interface C<T> extends Comparable<T>{}
確保所有實作 C 的 class 都一定會 extends Comparable,但還是一樣問題。
所以來版上求助了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.91.40
推
11/12 12:09, , 1F
11/12 12:09, 1F
推
11/12 12:13, , 2F
11/12 12:13, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):