你好,我是一个相对新手的程序员,我在比较方法方面遇到了困难。我有几个类,我的初始问题出现在我的父类中。
我收到了这个错误:
Person不是抽象的,并且没有在Comparator中重写compare(java.lang.Object, java.lang.Object)方法
public class Person implements Comparator
{
//some methods
public int compare(Person p1, Person p2)
{
// if last names are the same compare first names
if(p1.getLastName().equals(p2.getLastName()))
{
return p1.getFirstName().compareTo(p2.getFirstName());
}
return p1.getLastName().compareTo(p2.getLastName());
}
我的子类看起来像这样:
public class Player extends Person implements Comparator
{
//some methods
public int compare(Player p1, Player p2)
{
if(p1.getGamesPlayed()<p2.getGamesPlayed())
{
return -1;
}else if (p1.getGamesPlayed()==p2.getGamesPlayed())
{
return 0;
}else
{
return 1;
}
}
我也有一个俱乐部类,它将所有信息存储在ArrayList<Player>
团队中。
我的接口:
public interface Comparator<T>
{
int compare(T o1, T o2);
}
我也有这个类
public class ComparePlayers implements Comparator<Player>
{
public int compare(Player p1, Player p2)
{
if(p1.getGamesPlayed()< p2.getGamesPlayed())
{
return -1;
}else if(p1.getGamesPlayed()== p2.getGamesPlayed())
{
return p1.getLastName().compareTo(p2.getLastName());
}else
{
return 1;
}
}
这个的规范如下:
当签约新球员时,应按姓氏字母顺序(如果姓氏相同,则按名字顺序)将其插入到俱乐部类中。为此,请使您的人物和球员类实现适当的Comparable接口。
编写一个实现Comparator接口的ComparePlayers类。它应该通过已玩游戏的数量(如果已玩游戏的数量相同,则按姓氏字母顺序)比较球员。为Club类实现一个接受Comparator参数的新构造函数。因此,请编写一个主程序,以已玩游戏的减少顺序列出俱乐部中每个球员的信息。这应该允许由主程序指定排序方式,而无需修改其他任何类的代码。
如果这段话描述冗长,很抱歉,但我不知道哪里出了问题,我尝试了几种变化,但无济于事。这项任务要在星期五前完成,希望您能给我一些指引。