声纳错误:装箱值被拆箱,然后再次重新装箱

Sonar Bug: Boxed value is unboxed and then again reboxed

我无法弄清楚装箱值在哪里被拆箱又重新 在下面的示例代码中重新装箱。有人可以帮我吗 修复这个声纳错误。

List<Float> floatList = new ArrayList<>();
Float hundred = 100F;
Float zero = 0F;
String []stringFloatValues= new String[]{1.2,3.44,5.66};

for(String stringFloat: stringFloatValues){
    Float value = NumberUtils.isParsable(stringFloat)
           ? Float.valueOf(stringFloat) / hundred
           : zero;  // sonar showing issue in this statement
    floatList.add(value);
}
List<Float> floatList = new ArrayList<>();
float hundred = 100F;
float zero = 0F;
String[] stringFloatValues = new String[]{"1.2", "3.44", "5.66"};

for (String stringFloat: stringFloatValues) {
    float value = NumberUtils.isParsable(stringFloat)
           ? Float.parseFloat(stringFloat) / hundred
           : zero;  // sonar showing issue in this statement
    floatList.add(value);
}

随着你的计算,做一个除法(/),保持所有的原始类型floatFloat.valueOf 会给出一个装箱的 Float,需要取消装箱才能浮动,hundred 也是如此。如上所述 - parseFloat 给出一个浮点数 - 得到的浮点数 value 将被装箱在 add.