Могу ли я использовать compareTo для сравнения двух значений типа int?

В этой задаче я хочу сравнить две переменные int "a" и "b" с помощью compareTo, но возникает ошибка. Как я могу это исправить? Спасибо за Вашу поддержку.

public static void main(String[] args) {
    int a=5;
    int b=5;
    if (a.compareTo(b));
}

Это ошибка: «Невозможно вызвать compareTo (int) для примитивного типа int»


person Tommy    schedule 07.05.2020    source источник
comment
Нет, это примитивы, а не объекты   -  person Federico Piazza    schedule 07.05.2020
comment
Отвечает ли это на ваш вопрос? compareTo с примитивами -> Integer/int   -  person jhamon    schedule 07.05.2020
comment
Вопрос в том, почему вы хотите сравнивать их таким образом, если простой код, такой как a < b, будет работать так же хорошо и даже будет легче читать.   -  person OH GOD SPIDERS    schedule 07.05.2020
comment
Кроме того, compareTo возвращает целое число, а не логическое значение.   -  person user    schedule 07.05.2020
comment
Какая ошибка? Что вы не поняли в его послании? Вы смотрели его сообщение или лучше поняли его?   -  person Sotirios Delimanolis    schedule 07.05.2020


Ответы (1)


int — один из немногих примитивных типов, встроенных в язык Java, и, как вы заметили, примитивы не могут содержать методы.

Вы можете обернуть их в непримитивном Integer type< /a>, который является классом, а затем выполните сравнение:

Integer.valueOf(a).compareTo(Integer.valueOf(b))

Лучше (потому что он не создает бесполезных объектов) использовать статический метод, который предлагает этот класс, который принимает примитивные ints в качестве аргументов:

Integer.compare(a, b)
person Thomas    schedule 07.05.2020
comment
Благодарю за ваш ответ. Можете ли вы сказать мне, почему этот вопрос был закрыт и больше не принимает ответы? Спасибо. - person Tommy; 07.05.2020
comment
Вероятно, потому, что вы изначально не публиковали фактическое сообщение об ошибке, которое вы получали, и потому, что очень похожий (повторяющийся) вопрос уже существует, как указано в комментарии @jhamon. - person Thomas; 08.05.2020