JD.BITCMP

当 if check 包含二元运算符(如 & 或 |)而不是短路运算符(如 && 或 ||)时,发生 JD.BITCMP。为了获得最佳效果,最好使用短路运算。另外,如果使用二元运算,则需要对表达式的两侧求值,而这会导致其他意外问题,例如,引发空指针异常,示例如下。

漏洞与风险

JD.BITCMP 缺陷会对性能产生影响或导致意外的行为,例如,引发 RuntimeException。

缓解与预防

将位运算替换为短路运算。

示例 1

复制
     static void check(int arr[]) {
         if (arr!=null & arr.length!=0) {
             foo();
         }
         return;
     }

针对第 11 行报告 JD.BITCMP:在表达式中运用位运算符“&”遇到问题。您是要用“&&”吗?

相关检查器