这是我得到的错误: 错误:Customer类型必须实现继承的抽象方法java.lang.Comparable.compareTo(Customer)
我将它与我所做的一些实验室工作进行比较,它看起来完全相同,但编译得很好。我不确定这里发生了什么。
这是有问题的代码段,顺便提一下,是由我的教授写的:
class Customer implements Comparable<Customer>
{
String name;
double purchase;
double rebate;
public Customer(String n, double p, double r)
{ name=n;
purchase=p;
rebate=r;
} //end Constructor
public Customer(String n)
{
name=n;
} //end Constructor
public String toString()
{
return String.format("%-20s%10.2f%10.2f", name, purchase, rebate);
}
/*
Here, define the method comparedTo of the Comparable
interface so that an array of Customer objects can
be sorted by customer name
*/
public int comparedTo(Customer a)
{
return this.name.compareTo(a.name);
} //end comparedTo
} //end class Customer
哦,以下是教授所包含的内容:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
非常感谢您的帮助!
答案 0 :(得分:3)
comparedTo
应为compareTo
。
错误说明了一切。 ; P
答案 1 :(得分:0)
正如Steven正确指出的那样,您尝试实施的方法的名称拼写错误。捕获这样的错误的好方法是@Override
注释,如下所示:
@Override
public int comparedTo(Customer a)
这告诉编译器您希望compareTo()覆盖父类中声明的方法。当编译器找不到overrideTo()方法来覆盖时,它会告诉你。从Java 1.6开始,@Override
也可用于接口中声明的方法。