java - 无法覆盖比较器的compare()方法

标签 java comparator

尽管我已经实现了该方法,但我不确定为什么会出现以下错误。

在实现比较方法时,NameComparator.java 中的“NameComparator 类型的方法compare(Student, Student) 必须重写或实现父类(super class)型方法”

学生.java

public class Student {
    private String name;
    private int age;
    private String lesson;
    private int grade;

    public Student() {
    }

    public Student(String name, int age, String lesson, int grade) {
        super();
        this.name = name;
        this.age = age;
        this.lesson = lesson;
        this.grade = grade;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getLesson() {
        return lesson;
    }

    public void setLesson(String lesson) {
        this.lesson = lesson;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return "[name=" + this.name + ", age=" + this.age + ", lesson="
                + this.lesson + ", grade=" + this.grade + "]";
    }

}

NameComparator.java

import java.util.Comparator;

@SuppressWarnings("rawtypes")
public class NameComparator implements Comparator {

// I’m getting this error for below method "The method compare(Student, Student) of type NameComparator must override or implement a super type method"

    @Override
    public int compare(Student s1, Student s2) {
        String name1 = o1.getName();
        String name2 = o2.getName();

        // ascending order (descending order would be: name2.compareTo(name1))
        return name1.compareTo(name2);
    }

}

最佳答案

改变

public class NameComparator implements Comparator {

public class NameComparator implements Comparator<Student> {

当您实现原始 Comparator 接口(interface)(不建议这样做)时,您的 compare 方法需要 Object 参数。

关于java - 无法覆盖比较器的compare()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536915/

相关文章:

java - 如何在Android中使用HttpPost发送图像

java - 用于从网站下载所有 .pdf 文件的 Python/Java 脚本

java - compare consistent with equals 是什么意思?如果我的类(class)不遵循这个原则,可能会发生什么?

java - 我可以将 Collections.sort 与准顺序一起使用吗?

java - 为什么添加一行计算会减少运行时间?

java - CardLayout 获取所选卡片的名称

java - 如何使用 Java 获取给定证书文件的私钥

java - 比较器参数

Java 使用关联比较器对列表进行排序

java - 使用比较器对列表中的特定元素进行排序