【发布时间】:2017-03-06 05:05:31
【问题描述】:
【问题讨论】:
-
代码复制不仅仅是复制粘贴代码,它是复制粘贴的逻辑。
【问题讨论】:
SonarQube 告诉您这部分代码包含重复的逻辑。这并不一定意味着代码本身是复制粘贴的,但从概念上讲,完全相同的事情正在多个地方发生。在这种情况下,对于int 值返回String 值的逻辑显然是重复的。
这里有一个简单的解决方案:
String[] array = { "One", "Two", "Three", "Four", "Five", "Six" };
if (i >= 1 && i <= array.length) {
return array[i - 1];
}
【讨论】:
Java 项目的声纳规则:
只要有一段代码就被认为是重复的 无论数量多少,10 个连续语句的相同序列 标记和线条。无法覆盖此阈值。
您需要修改多个 if return 部分
【讨论】:
public class Test
{
private static final String[] WORDS;
static {
WORDS = new String[] {
"One", "Two", "Three", "Four", "Five", "Six"
};
}
public String intToEnglishValue(final int number) {
return number > 0 && number <= WORDS.length ? WORDS[number - 1] : "";
}
}
【讨论】: