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 类的实例。