我尝试对我的 linkedlist
进行排序使用Collection.sort
方法,我收到此错误:
Bound mismatch: The generic method
sort(List<T>)
of typeCollections
is not applicable for the arguments(ListIndiv)
. The inferred typeIndividu
is not a valid substitute for the bounded parameter<T extends Comparable<? super T>>
"
我尝试对此进行一些研究,但没有找到问题的答案。
列出各个类:
public class ListIndiv extends LinkedList<Individu>
implements Comparable<Individu> {
//some code
@Override
public int compareTo(Individu i1, Individu i2) {
return peek().distance(i1) - peek().distance(i2);
}
主类:
public class Main {
public static void main(String[] args) {
Individu i1 = new Individu();
i1.age = 4; i1.couleur_yeux = Color.green;
Individu i2 = new Individu();
i2.age = 16; i2.couleur_yeux = Color.blue;
Individu i3 = new Individu();
i3.age = 24; i3.couleur_yeux = Color.black;
ListIndiv li = new ListIndiv();
li.add(i1);li.add(i2);li.add(i3);
Collections.sort(li);
}
}
线路
Collection.sort(li);
导致了问题..我不知道我做错了什么。
最佳答案
应该比较的不是ListIndividu,而是Individu类本身(您不是在比较列表,而是在列表中比较Individus)。将“Comparable”及相关方法移至您的 Individu 类。
关于java - Collection.sort 与 LinkedList Comparable 方法已被重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24351459/