“实现可比较”和“可比较<t>”之间的区别</t>

时间:2014-02-17 16:39:52

标签: java interface comparable

我一直有这个问题:

public class Student implements Comparable {
    private int id;
    private String name;



    public int compareTo(Student other) {
       return 1; // This is just an example value

    }
}

该程序无法编译,因为它表示它不会覆盖方法“compareTo()”。那为什么呢?

但是,如果我使用以下类标题

public class Student implements Comparable<Student>{...}

它工作正常。我需要一些解释。顺便说一下,“Comparable”界面的很多互联网示例都使用了第一类标题,我的意思是没有Comparable。

1 个答案:

答案 0 :(得分:0)

查看Comparable的源代码。使用implements Comparable学生中的方法将是

public int compareTo(Object other) { ...

使用泛型可比较的方法就像你写的那样。

顺便说一句,编译器应该给你一个有用的解释。