声纳错误:取消装箱值,然后再次重新装箱

问题描述

我无法弄清楚装箱值在何处被拆箱 重新包装在下面的示例代码中。有人可以帮我吗 修复此声纳错误

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);
}

解决方法

owner_id

在计算时,进行除法(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); } ),并将所有内容保留为原始类型/float会给出一个装箱的Float,也需要取消装箱才能浮动,就像Float.valueOf一样。如上所述,在hundred给出浮点数的情况下,生成的浮点数parseFloat将装在value上。