有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java电子邮件类型必须实现继承的抽象方法。比较(对象)

它给出了这些错误 电子邮件类型必须实现继承的抽象方法。比较(对象) 键入电子邮件。DateComparator必须实现继承的抽象方法Comparator。比较(对象,对象) 键入电子邮件。SubjectComparator必须实现继承的抽象方法Comparator。比较(对象,对象)

虽然我有

public class Email implements Comparable, Serializable
{
...

    public static class DateComparator implements Comparator
    {
        public int compare(Email email1, Email email2)
        {
            return email1.getTimestamp().compareTo(email2.getTimestamp());
        }
    }

    public static class SubjectComparator implements Comparator
    {
        public int compare(Email email1, Email email2)
        {
            return email1.getSubject().compareTo(email2.getSubject());
        }
    }

}

如何修复


共 (3) 个答案

  1. # 1 楼答案

    将您的类签名更改为:

    public class Email implements Comparable<Email>, Serializable
    

    并采用可比方法:

    public int compareTo(Email otherEmail)
    

    当然,这是假设,您首先要使类具有可比性。目前,无论出于何种原因,都在类中定义了嵌套的比较器

  2. # 2 楼答案

    实现比较器。比较(对象,对象)方法。将参数转换为电子邮件。您实现了比较器。比较(电子邮件、电子邮件)

  3. # 3 楼答案

    您已经Email实现了Comparable接口。如果您提供了各种比较器,或者直接在Email类中实现compareTo方法,并使用一些合理的“自然顺序”,那么要么不要实现它,这是一件非常合理的事情