Java 参数使用中的UR异常

Java 参数使用中的UR异常,java,sonarqube,lint,dataflow,Java,Sonarqube,Lint,Dataflow,SonarQube在运行规则时将以下代码标记为UR异常,这让我感到困惑: public void doSomething(String filename) { final Resource resource = new ClassPathResource(filename); //do something with the resource ... } 我可以理解DU(因为变量的寿命很短),但为什么是UR 根据数据流分析,UR代表“未定义引用”,DU代表“已定义未定义” 第一个

SonarQube在运行规则时将以下代码标记为UR异常,这让我感到困惑:

public void doSomething(String filename) {
    final Resource resource = new ClassPathResource(filename);
    //do something with the resource ...
}
我可以理解DU(因为变量的寿命很短),但为什么是UR

根据数据流分析,UR代表“未定义引用”,DU代表“已定义未定义”


第一个是指何时引用未定义的变量(可能的错误),第二个是指何时未定义最近定义的变量(例如,当您超出范围且该变量被取消引用)。

Uhm。。。您能详细说明UR和DU吗?可能相关:。这将非常有助于确定标记问题的规则。鉴于@Jire?引发的链接,我怀疑这是一个PMD规则。事实上:请参阅DataflowAnomalyanalysit是一个PMD规则。我只是不明白为什么它会被标记。我也会更新这个问题。