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

Java 声纳错误:装箱的值被取消装箱,然后再次重新装箱,java,sonarqube,boxing,unboxing,Java,Sonarqube,Boxing,Unboxing,我无法确定已装箱的值在何处被取消装箱,然后再次取消装箱 在下面的示例代码中重新加载。有人能帮我进来吗 修复这个声纳错误 List floatList=new ArrayList(); 浮动100=100F; 浮点零=0F; String[]stringFloatValues=新字符串[]{1.2,3.44,5.66}; 用于(字符串stringFloat:stringFloatValues){ 浮点值=numberrutils.isParsable(stringFloat) 浮点数。浮点数(st

我无法确定已装箱的值在何处被取消装箱,然后再次取消装箱 在下面的示例代码中重新加载。有人能帮我进来吗 修复这个声纳错误

List floatList=new ArrayList();
浮动100=100F;
浮点零=0F;
String[]stringFloatValues=新字符串[]{1.2,3.44,5.66};
用于(字符串stringFloat:stringFloatValues){
浮点值=numberrutils.isParsable(stringFloat)
浮点数。浮点数(stringFloat)/100

:zero;//声纳在此语句中显示问题 浮动列表。添加(值); }
List floatList=new ArrayList();
浮动100=100F;
浮点零=0F;
字符串[]stringFloatValues=新字符串[]{“1.2”、“3.44”、“5.66”};
用于(字符串stringFloat:stringFloatValues){
浮点值=numberrutils.isParsable(stringFloat)
浮点数。解析浮点数(stringFloat)/100

:zero;//声纳在此语句中显示问题 浮动列表。添加(值); }
在计算时,进行除法(
/
),将所有内容保持为基本类型
float

Float.valueOf
将给出一个盒装浮点,需要将其解封为Float,以及
100
。如上所述,当
parseFloat
给出一个float时,得到的float
值将被装箱到
add

“sonar showing issue in this statement”中。该语句中
float
类型的每个表达式都应该是一个
float
float.valueOf(stringFloat)=>float.parseFloat(…)
Float-hundle=>Float-hundle
Float-zero=>Float-zero
。但是,用易于理解的值定义变量也没有什么意义:只需使用
100F
而不是
100
等等。实际上,我在前面自己实现了float而不是float。但问题仍然没有解决。所以,我想我应该只使用Float,因为如果我使用Float,那么自动装箱会将结果存储到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);
}