【发布时间】:2018-03-17 08:15:55
【问题描述】:
在其他 SO 帖子 (1 & 2) 中指出了误报,其中 nulls 涉及跨职能和过程。
我觉得我的情况没有那么复杂。
// A and B are both Double[]
if (A.length == 1 || (B != null && B.length == 1)) {
Double vol;
if (A.length == 1) {
vol = A[0];
} else {
vol = B[0]; // Sonar Blocker: Null pointers should not be deferenced
}
}
我本可以通过将 else 更改为 else if (B != null && B.length == 1) 来解决此问题,但这样做会给我带来警告“condition(B != null && B.length == 1) 始终为真”。
我在这里错过了什么吗?
【问题讨论】:
-
您使用的是哪个版本的 SonarQube?你有哪个版本的 SonarJava 插件?
-
@Tibor SonarQube 版本 5.6.6,IntelliJ SonarLint 插件 3.0.0.2041