发现' UR' -anomaly for variable

时间:2016-10-18 09:20:25

标签: sonarqube5.1

我有这个声纳错误Major:

  

发现' UR' -anomaly for variable' language' (行' 83' - ' 85')

在这个函数中:

public void saveAll(List<Language> languages){
   //Found 'UR'-anomaly for variable 'country' (lines '83'-'85').       
   //Code Smell   Major    Open    Not assigned   20min effort   Comment
   for (Language language: languages) {
        save(language);
   }
}

如何解决这个重大错误,谢谢你提前

1 个答案:

答案 0 :(得分:2)

修改: 在其他SO帖子中找到更多信息。虽然这更加以PMD为中心,但您可能会对背景信息感兴趣。 Java for each loop being flagged as UR anomaly by PMD

这似乎是PMD的规则。定义:

  

数据流分析跟踪本地定义,定义和定义   引用数据流上不同路径上的变量。从   那些信息可以找到各种问题。 UR -   异常:有一个未定义的变量的引用   之前。这是一个错误,导致错误。杜 - 异常:A   最近定义的变量是未定义的。这些异常可能会出现在   正常的源文本。 3. DD - 异常:最近定义的变量是   重新定义。这是不祥的,但不一定是个错误。

有一个开放的错误报告: https://sourceforge.net/p/pmd/bugs/1190/

在他们为Arrays报告它的例子中,但有人评论说它们也适用于集合。

示例:

public static void main(final String[] args) {
    for (final String string : args) {
        string.getBytes(); //UR Anomaly
    }
    for (int i = 0; i < args.length; i++) {
        args[i].getBytes();
    }
}

在我们的声纳设置中,我们不使用此规则。根据您提供的信息,您可能不希望在您的信息中使用它。