Это для домашнего задания. Тем не менее, я кодировал подавляющую часть моего задания. Есть только этот блокпост. Я также новичок в Java, поэтому моя терминология может быть немного отключена.Как решить: compareTo >> не может найти символ
Так у меня есть 5 типов: Предоставлено учителя:
- NameInterface, что файл интерфейса для имени
- имя, которое использует 2 частных Струны, первый & последний, для имени и фамилии
- StudentInterface, что файл интерфейса для студенческого
- StudentTest, который является основным методом, используемым для тестирования
В основном, предоставляемый учителем, мне просто нужно исправить compareTo(). Все остальное, как конструкторы, поля и т.д. сделано:
- Студент, который использует FULLNAME (который является NameInterface) & города Строка
класса Названия имеет CompareTo() переопределение, который использует встроенный в Java в CompareTo сравнить это первый & другой первый
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
класс Student имеет CompareTo(), который использует имя класса СотрагеТо сравнить это имя & другое имя по S хорошо, как этот город & другой город
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
Я пытаюсь вызвать СотрагеТо Студента класса в StudentTest, но говорит, что не может найти символ.
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));
ошибка:
StudentTest.java:27: error: cannot find symbol
System.out.println(" compare as (should be +ve) " + si.compareTo(si2));
^
symbol: method compareTo(StudentInterface)
location: variable si of type StudentInterface
1 error
Мой вывод, что "объект другого" не соответствует "StudentInterface". Как я могу это решить? Всем спасибо.
Не могли бы вы вставить полный код, чтобы включить важную информацию (например, полное определение StudentInterface)? –
Вы объявили 'int compareTo (Object other);' in 'StudentInterface'? –
Это означает, что интерфейс 'StudentInterface' не указывает метод' compareTo'. Кажется, что вы только определили его в классе «Студент». –