gpt4 book ai didi

java - Sonar CPD 检测 block 重复

转载 作者:行者123 更新时间:2023-12-02 08:07:19 25 4
gpt4 key购买 nike

我已经对 Sonar cpd 如何检测重复 block 进行了很多分析。但我无法准确触发检测 block 或代码行所需的过程。是否有最小行数。

例如,如果我按如下方式编写,即使我重复超过 20 次,它也不会检测到任何代码重复。

        System.out.println("this is good");
System.out.println("this is good");

System.out.println("this is good");
System.out.println("this is good");

System.out.println("this is good");

System.out.println("this is good");

System.out.println("this is good");

System.out.println("this is good");

System.out.println("this is good");

System.out.println("this is good");

后来我尝试给予 block 重复

     try
{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try
{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}

尽管它有很多 block ,但这里将其视为两个 block 。

请告诉我 Sonar 3.4.1 重复检测的具体流程

在这个 http://docs.sonarsource.org/3.1/apidocs/src-html/org/sonar/plugins/cpd/SonarEngine.html

我发现 block 大小恒定为 10。但我能够在我的观察中将其联系起来。

最佳答案

block 是平衡大括号之间的代码行。 block 大小恒定意味着 block 中必须有 10 行代码进行匹配。因此,要进行重复,请尝试此操作。

public void foo(){
//... 10 lines of code
}

private void bar(){
//.... the same 10 lines of code
}

关于java - Sonar CPD 检测 block 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com