想不通编译错误进行简单的Java应用程序
这是我收到的错误: 错误:类型客户必须实现继承的抽象方法java.lang.Comparable.compareTo(客户)想不通编译错误进行简单的Java应用程序
我将它与我做的一些实验工作进行比较,看起来完全一样,但编译得很好。我不确定这里发生了什么事。
这里是有问题的代码段,顺便说一下,写我的教授:
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;
你的帮助是很大的不胜感激!
comparedTo
应该是compareTo
。
错误说明了一切。 ; p
Agh。我一定不能阅读,因为我完全没有建立这种联系。我只是按照教授在问题陈述中所说的去做。虽然我们使用'compareTo()',但我们突然切换到'comparisonTo()'似乎有点奇怪。 – Lish 2011-03-02 14:08:59
正如Steven正确指出的那样,您尝试实施的方法的名称拼写错误。赶上这样的错误的一个好方法是@Override
注释,像这样:
@Override
public int comparedTo(Customer a)
这告诉你打算comparedTo()覆盖在父类中声明的方法编译器。当编译器没有找到一个要重写的comparisonTo()方法时,它会告诉你。从Java 1.6起,@Override
也可用于在接口中声明的方法。
哦,很酷。下次我会记住这一点。我不知道这是可能的。 – Lish 2011-03-02 17:52:42
@Lish:欢迎使用Code Review。本网站用于审核工作代码,而不是解决编译问题。迁移到StackOverflow。 Ack! – 2011-03-02 14:06:34
Ack!对于那个很抱歉! – Lish 2011-03-02 14:10:15