排序问题无法实例化覆盖compareTo()方法的抽象对象

HoN*_*uRu -1 java

我正在尝试建立一个新的排序标准,在这种情况下是按名称.当我调用排序方法时,我遇到错误...

这是包"package"中的分隔类(SortByName):

----------------------- CLASS SortByName ------------------------- -

包装;

import java.util.*;

公共抽象类SortByName实现Comparator {

public int compareTo(Object o1, Object o2){
    String n1 = ((Ficha)o1).getName();
    String n2 = ((Ficha)o2).getName();
    return n1.compareTo(n2);
Run Code Online (Sandbox Code Playgroud)

}

然后在ActionPerformed事件中我有这个:

----------------在行动事件按钮----------------------------

Collections.sort(list,new SortByName());

"package.SortByName是抽象的,>无法实例化"

我尝试在类定义(SortByName)中更改"抽象"类型,但它遵守不覆盖compareTo()方法.

谢谢阅读.

Boz*_*zho 6

您必须实现的方法是compare,而不是compareTo.

抽象类无法实例化.

此外,Comparator是通用的,所以你最好做以下事情:

public class SortByName implements Comparator<Ficha>{

    public int compareTo(Ficha f1, Ficha f2){
        String n1 = f1.getName();
        String n2 = f2.getName();
        return n1.compareTo(n2);
    }
}
Run Code Online (Sandbox Code Playgroud)