В FindBugs целое число, не совместимые с ожидаемый тип аргумента?


Я работаю над заданием, и мне казалось, что я понял проблему, но я получаю те же результаты. Используя приложение FindBugs, я смог увидеть большой со следующей строкой кода:

out.writeObject(accountMap.get(i));

Я получил сообщение об ошибке, которое гласило:

Целое число несовместимо с ожидаемым типом аргумента String in...

Поэтому я исправил его, преобразовав int в строку с:

out.writeObject(accountMap.get(Integer.toString(i)));

С теми же результатами ошибок. Я что-то не так понял?

1 2

1 ответ:

Я воссоздал вашу проблему, и Findbugs нашел ту же ошибку. Пока все хорошо.

Integer is incompatible with expected argument type String in ...(String[]) [Scariest(1), High confidence]

Затем я применил ваше изменение (целое число.toString (i)) и обнаружен при запуске Findbugs снова, ошибка устранена (что отличается от вашего наблюдения).

Я подозреваю, что вы не повторно запускали findbugs?

Я протестировал с FindBugs версии: 3.0.1.20150306-5afe4d1

PS: вот некоторая история о том, почему вообще существует ошибка (относящаяся к Map#get без использования дженериков): Почему это java.утиль.Карта.получить(...) не общий?