在静态分析中,是否有任何示例解释false negative
和false positive
?
对于 空引用分析 ?
答案 0 :(得分:2)
假阳性通常是指在某物不存在的情况下(例如“假”)检测到某物(即“阳性”)。
通常,假阴性是指当某物确实存在时未检测到 (即“阴性”)。
对于空解除引用分析,这意味着:
例如,考虑以下方法:
public void frobnicate(Object foo) {
int hash = foo.hashCode(); // line #1
int hash2 = foo.hashCode(); // line #2
}
如果分析告诉您在标记为“#2”的行上存在潜在的空指针取消引用,那么这是错误的,因为当执行到达该点时,foo
不能为空。因此,此类通知将被视为误报。
如果分析失败告诉您在标记为“#1”的行上有潜在的空指针取消引用,则 也将是错误的,因为{{1 }}显然可以是foo
。那将是一个假阴性。