これがケースです。2つのクラス、、、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);
今回は次のようなエラーが発生しました。
バインドの不一致:
sort(List<T>)
タイプの一般的なメソッドはCollections
、引数には適用できません(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> {...}
誰か助けてもらえますか?