答案 0 :(得分:3)
SonarQube告诉您这部分代码包含重复的逻辑。这并不一定意味着代码本身是复制粘贴的,但从概念上讲,完全相同的事情发生在多个地方。在这种情况下,明确重复了关于String
值返回int
值的逻辑。
这里有一个简单的解决方案:
String[] array = { "One", "Two", "Three", "Four", "Five", "Six" };
if (i >= 1 && i <= array.length) {
return array[i - 1];
}
答案 1 :(得分:1)
SonarRules for Java项目:
一条代码被认为是重复的 无论数量多少,10个连续陈述的相同序列 代币和线条。无法覆盖此阈值。
您需要修改多个 if return 部分
答案 2 :(得分:-1)
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] : "";
}
}