【发布时间】:2014-04-23 01:57:59
【问题描述】:
所以我看到了多个与我的问题类似的问题,但我找不到与我的问题完全相同的问题。
我有一个联系人对象的 ArrayList,我想使用 Collections.sort 对它们进行排序:
public void sortContactArrayList(){
ArrayList<Contact> newList = new ArrayList<Contact>();
Collections.sort(newList);
}
为了做到这一点,我创建了Contactimplement Comparable<Contact>。
而且,我的compareTo 方法如下所示:
@Override
public int compareTo(Contact otherContact) {
return this.getName().compareTo(otherContact.getName());
}
但是,当我调用 Collections.sort(newList); 时收到错误消息
错误是:
“绑定不匹配:集合类型的泛型方法sort(List<T>) 不适用于参数(ArrayList<Contact>)。推断的类型Contact 不是绑定参数<T extends Comparable<? super T>> 的有效替代品”
有谁知道问题出在哪里?就像我说的那样,我在某些对象的自定义列表中看到过类似的问题,例如“ContactDatabase<Contact>”或其他东西,但我从未见过仅与某个对象本身有关的问题。
谢谢!
【问题讨论】:
-
该消息意味着
Contact没有实现Comparable<Contact>。您确定您已重新编译它并且您的编译器正在查看正确的 .class 文件吗? -
这似乎适合我。可以发一下
Contact的代码吗?
标签: java sorting collections comparable