SonarQube 解决误判有两个方式。
第一种是通过注释
在被误判的代码行后面加上注释://NOSONAR
// 这里的user被sonar认为可能会为null
String name = user.getName(); //NOSONAR
注意:注释一定要写在代码的同一行后面。
第二种是使用注解 @SuppressWarnings
在类或方法上面加上 @SuppressWarnings 注解
@SuppressWarnings("squid:S1309")
public class Example {
...
@SuppressWarnings("all")
public void example(){
}
}
@SuppressWarnings(“all”) // 忽略全部规则
@SuppressWarnings(“squid:S2259”) // 忽略指定规则
@SuppressWarnings({“squid:S2259”, “squid:S1309”}) // 忽略多条指定规则
指定规则需要写规则的id,规则id的查找方法:
点击进去规则详情,在右上角可以看到规则的id