Dhanyaal Ответов: 1

Как вызвать equalsignorecast на целое число.toString в случае, если заявление


Проблема, с которой я столкнулся, заключается в том, что я пытаюсь преобразовать примитив в целое число вместо строки, и мне удалось преобразовать строку в int с помощью integer.toString, но он продолжает выдавать эту ошибку в операторе if. Не знаю, в чем проблема.

<pre>Cannot invoke equalsIgnoreCase(int) on the primitive type int


Что я уже пробовал:

Я посмотрел на stackoverflow и перепробовал все, чтобы решить эту проблему, не могу справиться с ней, может кто-нибудь помочь, пожалуйста.

Cannot invoke equalsIgnoreCase(int) on the primitive type int

Это сообщение об ошибке, которое я получаю.

Строка Ошибки:
if(Integer.toString(f.getId().equalsIgnoreCase(id)) &&



Смотрите код ниже:
public static Film getNamedFilm(int id, String title, int year, String director, String stars, String review) {
    Collection<Film> films = getSampleFilms().values();
    for(Film f: films) {
        //          if(Integer.toString(f.getId()(id)) &&
        if(Integer.toString(f.getId().equalsIgnoreCase(id)) &&
                (f.getTitle().equalsIgnoreCase(title)) &&
                //                  Integer.toString(f.getYear().equalsIgnoreCase(year)) &&
                Integer.toString(f.getYear()) &&
                (f.getDirector().equalsIgnoreCase(director)) &&
                (f.getStars().equalsIgnoreCase(stars)) &&
                (f.getReview().equalsIgnoreCase(review))) {
            return(f);
        }
    }
    return(null);
}

1 Ответов

Рейтинг:
10

Richard MacCutchan

if(Integer.toString(f.getId().equalsIgnoreCase(id)) &&

Вы конвертируете некоторое значение (возвращаемое из f.getId) в строку, а затем пытается сравнить ее с целочисленным значением (idНо это не имеет смысла, вы не можете сравнить строку с целым числом. Но почему вы преобразуете значение в строку, чтобы сравнить его? Почему бы просто не написать:
if(f.getId() == id) &&


Кроме того, вы отметили этот вопрос Javascript, но я вполне уверен, что это Java.


Dhanyaal

Привет, строка, которую вы мне прислали, неверна, она отбрасывает синтаксическую ошибку:синтаксическая ошибка на токене "&&", throw expected

С этой линией;
если(Ф.getId() == ИД) и усилитель; &

Richard MacCutchan

Извини, так и должно быть

if(f.getId() == id &&

Dhanyaal

А как насчет этой линии;
(Ф.возвратите()==год) и усилитель; &


если(Ф.getId() == ID и усилитель;&
(Ф.именно gettitle().(название)) и усилитель equalsIgnoreCase;&амп;
(Ф.возвратите()==год) и усилитель; &
// Integer.toString(f.getYear()) &&
(Ф.getDirector()==(директора)) и усилитель; &
(Ф.getStars().(звезды)) и усилитель equalsIgnoreCase;&амп;
(f.getReview().equalsIgnoreCase(обзор))) {
возврат(f);
}

Richard MacCutchan

Что ты имеешь в виду? Работает это или нет?

Dhanyaal

Это не работает

Richard MacCutchan

Вот вам мое предложение. Взгляните на каждое поле в вашем классе Film и убедитесь, что вы сравниваете like с like, то есть string со строкой и int с int. Затем разделите операторы на несколько предложений if и запустите свой код через отладчик, чтобы точно увидеть, какая часть не работает.