Сравните ошибку codecheck [duplicate]

0
задан Marcin Majewski 15 April 2014 в 18:18
поделиться

2 ответа

В документации Comparable, compareTo возвращается:

отрицательное целое число, ноль или положительное целое число, поскольку этот объект меньше, чем, равный или больший, чем указанный объект.

Итак, если a меньше меньше b ( встречается до , в естественном порядке сортировки), a.compareTo(b) возвращает отрицательное число , но не обязательно -1

Измените

if (this.surname.compareTo(tocompare) == -1)

на

if (this.surname.compareTo(tocompare) < 0)

, и вы должны быть хорошими.

Редактировать: Примечание: Лучшим и простым способом записи этого кода является

@Override
public int compareTo(Osoba o)
{
    return this.surname.compareToIgnoreCase(tocompare.getsurname()));
}
3
ответ дан Nivas 20 August 2018 в 10:53
поделиться

String.compareTo возвращает все целые значения int выше и ниже нуля. Поэтому ваш код должен выглядеть так:

@Override
public int compareTo(Osoba o)
{
    if (!this.surname.equalsIgnoreCase(o.getSurname()))
    {
        return this.surname.compareToIngoreCase(o.getSurname());
    }
    else
    {
        return this.name.compareToIngoreCase(o.getName());
    }
}
0
ответ дан Valhure 20 August 2018 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: