NPE.STAT
如果尝试取消引用 null 值,将引发 NullPointerException。取消引用可以是函数调用、字段读取或写入,或数组访问。当方法的源代码不可用,但统计数据表明其可能返回空值时,取消引用方法调用会导致报告 NPE.STAT。将针对适用于方法返回值的空值检查来收集统计数据。
示例 1
复制
public void printAbsoluteParentPath() {
final File parent = f.getParentFile();
if (parent != null) {
String absolutePath = parent.getAbsolutePath();
System.out.println("absolute path " + absolutePath);
}
}
public void printCanonicalParentPath() throws IOException {
final File parent = f.getParentFile();
if (parent != null) {
String canonicalPath = parent.getCanonicalPath();
System.out.println("canonical path: " + canonicalPath);
}
}
public void printParentPath() throws IOException {
String path = f.getParentFile().getPath();
System.out.println("path " + path);
}
针对第 39 行报告 NPE.STAT,因为“getParentFile()”返回的值通常会在取消引用前进行空值检查,因此可能发生 NPE。
相关检查器
外部指导
扩展
此检查器可通过 Klocwork 知识库进行扩展。有关详情,请参阅调整 Java 分析。