Java 进行比较以覆盖失败,简单类

Java 进行比较以覆盖失败,简单类,java,compareto,Java,Compareto,我有两个字段的简单类。我希望能够对此类的对象进行排序,因此实现了compareTo()方法。我要用于排序的字段是int。因此我的方法非常简单 public int compareTo(macToPortMapping pnum) { // we want to be able to sort a mapping based upon the port number return this.portNo - pnum.portNo; } 这似乎与我所读到的关于实现可比较的。尽管如

我有两个字段的简单类。我希望能够对此类的对象进行排序,因此实现了compareTo()方法。我要用于排序的字段是int。因此我的方法非常简单

public int compareTo(macToPortMapping pnum) {
    // we want to be able to sort a mapping based upon the port number
    return this.portNo - pnum.portNo;
}
这似乎与我所读到的关于实现可比较的。尽管如此,netbeans还是希望删除@Override和我的编译消息“method不重写超类型中的方法”

这对我来说没有任何意义。有什么建议吗?

我找到了一个解决方案-- 在我的类声明中,我必须包含一个实现

public class macToPortMapping implements Comparable<macToPortMapping>{
    int portNo;
    macAddress addr;
公共类macToPortMapping实现了可比较的{
国际港口;
macAddress地址;
}


当我把它放在课堂上时,一切都如期进行。我不知道我怎么会在阅读中错过这个

您是否实施了可比?此外,按照惯例,Java类名是大写的,例如MacToPortMapping。或者,您可以通过执行myList.sort(Comparator.comparingInt(MacToPortMapping::portNo)),省去创建一个类来比较一个字段的麻烦或者如果它是一个数组-->
Arrays.sort(myArray,Comparator.comparingit(macToPortMapping::portNo))这是正确的方法,是的。作为旁注,你应该总是用大写字母第一个字母来命名你的类。例如这里的
macToPortMapping
应该是
macToPortMapping
macAddress
应该是
macAddress
。这就是Java惯例。请参阅此处的更多详细信息: