JD.RC.EXPR.CHECK

当检查局部变量(即使该检查总是导致出现“true”值),以便代码块始终在该条件下执行时,触发 JD.RC.EXPR.CHECK。

漏洞与风险

逻辑缺陷。仅应对编译时非已知的属性执行检查。

缓解与预防

确保找到正确的值,检查其中相应的变量。

示例 1

复制
     void handleEvent(AWTEvent event) {
         if (event instanceof MouseEvent) {
             if (event != null) {
                 handleMouseEvent((MouseEvent) event);
             }
         }
     }

针对第 15 行的检查报告 JD.RC.EXPR.CHECK,因为第 14 行的检查可确保 event 不为 null;

示例 2

复制
     void handleEvent(AWTEvent event) {
         if (event != null) {
             if (event instanceof MouseEvent) {
                 handleMouseEvent((MouseEvent) event);
             }
         }
     }

未针对代码段报告 JD.RC.EXPR.CHECK:第 14 行的 null 检查不能确保 event 是 MouseEvent 类的实例。

相关检查器