В FindBugs целое число, не совместимые с ожидаемый тип аргумента?
Я работаю над заданием, и мне казалось, что я понял проблему, но я получаю те же результаты. Используя приложение FindBugs, я смог увидеть большой со следующей строкой кода:
out.writeObject(accountMap.get(i));
Я получил сообщение об ошибке, которое гласило:
Целое число несовместимо с ожидаемым типом аргумента String in...
Поэтому я исправил его, преобразовав int в строку с:
out.writeObject(accountMap.get(Integer.toString(i)));
С теми же результатами ошибок. Я что-то не так понял?
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.утиль.Карта.получить(...) не общий?