java - 联系人无法转换为 java.lang.Comparable

标签 java

我一直在努力发现我的错误,但无济于事。有人能帮我吗? 我确信我正在比较正确的对象

    Contact[] sortedList = myContactList.sortContactsByName();
    for (Contact c : sortedList) {
        // TODO using this line means you need to implement what in Contact class?
        // Hint: You need to override a method inherited from Object.

        System.out.println(c);
    }
}



public Contact[] sortContactsByName() {
    Contact[] contactArray = contacts.toArray(new Contact[contacts.size()]);
    // TODO Contact class has to implement Comparable
    // interface for this to work!

    Arrays.sort(contactArray);
    // Don't bother how it works now, sorting in Java
    // will be covered later on.
    return contactArray;
}

}

public int compareTo(Contact o1){

    return this.name.compareTo( o1.name);

最佳答案

您必须声明类Contact 才能实现Comaprable

class Contact implements Comparable<Contact> {

如果没有此声明,仅实现 compareTo 是不够的。另外,在 compareTo 上方放置 @Override 注释也是一种很好的做法。

关于java - 联系人无法转换为 java.lang.Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875574/

相关文章:

java - 扫描 lwjgl 中的键

java - 如何使用比较器(用于二分搜索)将 DateTime 与对象中的 DateTime 字段进行比较?

java - 将整数时间转换为不带日期的字符串时间

java - 哪个调试工具可以列出内部化的字符串?

java - Eclipse:未设置 JAVA_HOME

java - 使用 Maven 将 XML 文件放入 jar 的非资源中

java - Symfony(doctrine)数据库与 Java/C/C++ 服务器交互

递归函数中读取字符串的Java辅助方法

java - 正则表达式:找到 "bar"但找不到 "foo bar"

java - 不可理解的空指针异常 - java