这是一项家庭作业。但是,我编写了我的任务的绝大部分。只有这一个障碍。我也是Java的新手,所以我的术语可能有些偏差。
所以我有5种类型: 由老师提供:
主要由老师提供,我只需修复compareTo()。其他一切如构造函数,字段等都已完成:
Name类有一个compareTo()覆盖,它使用Java的内置compareTo来比较第一个&其他第一个
dispatch_apply
Student class有一个compareTo(),它使用Name class compareTo来比较这个Name&其他名称以及这个城市&其他城市
public int compareTo(Object other)
{
int result = last.compareTo(((Name)other).last);
if (result == 0)
{
// last names are equal; check first
result = first.compareTo(((Name)other).first);
} // end if
return result;
} // end compareTo
我尝试在StudentTest中调用Student class的compareTo,但它说找不到符号。
public int compareTo(Object other)
{
Student localStudent = (Student) other;
int result = (fullName.getName()).compareTo((localStudent.getName()).getName());
if (result == 0)
{
// last names are equal; check first
result = city.compareTo(localStudent.getCity());
} // end if
return result;
} // end compareTo
错误是:
StudentInterface si = new Student();
si.setCity("Kingston");
NameInterface ni = new Name("Andrew","Pletch");
si.setName(ni);
StudentInterface si2 = new Student();
si2.setCity("Kingston");
NameInterface ni2 = new Name("Aram","Agajanian");
si2.setName(ni2);
System.out.println(" compare as (should be +ve) " + si.compareTo(si2));
我的结论是“对象其他”不符合“StudentInterface”。我该如何解决这个问题?谢谢大家。
答案 0 :(得分:1)
将compareTo添加到界面。所有使用的方法都必须在变量的类型上表示。 si的类型为StudentInterface,因此您只能使用在StudentInterface上声明的方法。