声纳的“重复代码”在哪里?

2022-09-02 13:27:05

我只是在示例声纳项目上运行声纳扫描仪。它给我的信息是“第7-20行上有重复的代码”。谁能解释一下?

enter image description here


答案 1

SonarQube告诉您,这部分代码包含重复的逻辑。这并不一定意味着代码本身是复制粘贴的,但从概念上讲,完全相同的事情发生在多个地方。在这种情况下,返回与值相关的值的逻辑显然是重复的。Stringint

这里有一个简单的解决方案:

String[] array = { "One", "Two", "Three", "Four", "Five", "Six" };
if (i >= 1 && i <= array.length) {
    return array[i - 1];
}

答案 2

SonarRules for Java 项目:

一旦存在相同的10个连续语句序列,无论标记和行的数量如何,一段代码就被视为重复。不能覆盖此阈值。

您需要修改多个 if 返回部分


推荐