所以我已经看到了解决类似问题的多个问题,但我无法找到一个与我的问题完全相同的问题。
我有一个ContactList的ArrayList,我想使用Collections.sort对它们进行排序:
public void sortContactArrayList(){
ArrayList<Contact> newList = new ArrayList<Contact>();
Collections.sort(newList);
}
为了做到这一点,我提出Contact
实施Comparable<Contact>
。
而且,我的compareTo
方法如下所示:
@Override
public int compareTo(Contact otherContact) {
return this.getName().compareTo(otherContact.getName());
}
但是,当我调用Collections.sort(newList);
时,我收到错误错误是:
“绑定不匹配:类型集合的通用方法sort(List<T>
”不适用于参数(ArrayList<Contact>
)。推断类型Contact不是有界参数{{1}的有效替代}“
有谁知道这是什么问题?就像我说的那样,我已经看到了这个类似的问题,其中包含某些对象的自定义列表,例如“<T extends Comparable<? super T>>
”或其他东西,但我从未在某个对象本身看到过这个问题。
谢谢!
答案 0 :(得分:1)
如果您实施了Comparable<Contact>
,那就没问题。
这是我的快速测试代码:
Contact.java:
public class Contact implements Comparable<Contact> {
private String name;
public Contact(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public int compareTo(Contact otherContact) {
return this.getName().compareTo(otherContact.getName());
}
}
主要方法:
public static void main(String[] args) {
ArrayList<Contact> newList = new ArrayList<Contact>();
newList.add(new Contact("Midgar"));
newList.add(new Contact("David"));
Collections.sort(newList);
System.out.println(newList);
}