Я работаю над программой, которая должна переопределить CompareTo () в Comparable, чтобы Collections.sort () работал. Поскольку я работаю с ArrayList, составленным из Assistants, который я должен отсортировать в зависимости от имени.
Я осмотрел форум и нашел это и попытался изменить
public class Assistant{
до
public class Assistant implements Comparable<Assistant>{
, что в свою очередь позволяет мне использовать Collections.sort () в другом классе и не предупреждает меня о каких-либо ошибках, однако появляются две новые ошибки.
Для начала, в этой же строке
public class Assistant implements Comparable<Assistant>{
он говорит мне, что «он не является абстрактным и не переопределяет CompareTo (Assistant) в Comparable». И когда я иду в CompareTo (), я создал:
@Override
public int compareTo(Object o2){
Assistant m2 = (Assistant) o2;
if(this.name.compareTo(m2.name) == 0){
return 0;
}else if(this.name.compareTo(m2.name)<0){
return -1;
}else{
return 1;
}
}
(в конструкторе Ассистента есть только имя).
Однако в этом месте у меня есть ошибка в @Override:
msgstr "метод не переопределяет или не реализует метод из супертипа".
А в следующей строке
public int compareTo(Object o2){
Я получаю еще одну ошибку (которая связана с последней), говорящую мне:
«Столкновение с именем: CompareTo (Object) в Assistant и CompareTo (Assistant) в Assistant имеют одинаковое стирание, но ни одно из них не перекрывает другое».
Я как бы понимаю проблему, я не переопределяю исходное сравнение to ().
Я новичок в Java, поэтому, если кто-то обнаружит проблему, я был бы признателен, если бы вы также объяснили, что я делаю неправильно (или отсутствует).
Спасибо:)