Как я могу решить общую ошибку для сравнения? - PullRequest
0 голосов
/ 29 сентября 2018
public class SortedLL<T extends Comparable<T>> implements SortedListInterface<T>  {

   public void add(T data) {

        int i;
        for(i=0; i<size;i++){ 
            if(data < getAt(i))                         
                break;       
        }                    
   }
}

enter image description here

Я здесь, чтобы задать вам вопрос, потому что я не понимаю эту ошибку.

Тип данных является общимT и значение, полученное с помощью getAt(i), также равно T.

И при определении класса SortedLL я объявил его <T extents Comparable <T>>.

Кто-нибудь знает, почему существуетошибка при сравнении этих двух значений и есть ли решение?

1 Ответ

0 голосов
/ 29 сентября 2018

В Java нет перегрузки операторов.Оператор < реализован только для числовых примитивов, а не для объектов.

Используя интерфейс Comparable, вы можете вызвать метод compareTo, чтобы получить такое поведение:

if (data.compareTo(getAt(i)) < 0) 
...