无法弄清楚简单Java应用程序的编译错误

时间:2011-03-02 14:02:22

标签: java

这是我得到的错误: 错误: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;

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

comparedTo应为compareTo

错误说明了一切。 ; P

答案 1 :(得分:0)

正如Steven正确指出的那样,您尝试实施的方法的名称拼写错误。捕获这样的错误的好方法是@Override注释,如下所示:

@Override
public int comparedTo(Customer a)

这告诉编译器您希望compareTo()覆盖父类中声明的方法。当编译器找不到overrideTo()方法来覆盖时,它会告诉你。从Java 1.6开始,@Override也可用于接口中声明的方法。