问题描述
我无法弄清楚装箱值在何处被拆箱 重新包装在下面的示例代码中。有人可以帮我吗 修复此声纳错误。
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
上。