Ответ 1
Проблема заключается в том, что Integer.valueOf
возвращает Integer
, а не int
, но ваш someOtherMethod
ожидает int
. Findbugs в основном предупреждает вас, что вы делаете это длинным способом, который связан с потенциальным созданием объекта (Integer
), который вам не нужен, который вы сразу же отправляете в unbox, передав его someOtherMethod(int)
, например:
String => int => Integer => int ^^^^^^^^^^^^^^ \--- This is inside Integer.valueOf
Вместо этого вы можете и, вероятно, должны избегать этого ненужного раунда через Integer
и просто выполните:
String => int ^^^^^^^^^^^^^ \--- Integer.parseInt
Нет необходимости в временном Integer
и потенциальном распределении памяти и таком окружении.
Если someOtherMethod
ожидали Integer
, вы не получили бы предупреждения, потому что Integer
не является чисто временным.
Это всего лишь один из классов ненужных бокс-конверсий, которые Findbugs и инструменты, как это, полезно отметить.