获取以下代码
String str = "like row lounge dude top e";
String replaced = str.replaceAll("(?<!\\b)e\\b", "");
System.out.println("Replaced: " + replaced);
然后声纳指示我“在进行该除法之前,请确保“总计”不能为零。”但是,如果合计为零,则甚至不会达到1.0 /合计。这是声纳虫还是我的错?
答案 0 :(得分:3)
这不是错误,而是SonarQube用于检查代码(静态代码分析)的方法的固有局限性:SonarQube通常无法评估表达式(假设条件是否取决于用户输入),因此它不知道“ else”分支是否执行。
所看到的只是将total
初始化为0.0
,然后您以后可能调用试图除以total
而仍为零的代码(它知道您没有向其中分配任何其他内容,或者找到了一个保留为零的分支)。