JD.VNU.NULL
JD.VNU.NULL 显示给一个变量赋 null 值后,该值一直未被读取。
漏洞与风险
在大多数情况下,这只是一个多余的初始化代码,但有时,可能表示一个严重的逻辑错误。
缓解与预防
优化代码,并移除未使用的赋值。
示例 1
复制
Reader prepareReader(Reader r) {
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(r);
register(bufferedReader);
} catch (Exception e) {
e.printStackTrace();
}
return bufferedReader;
}
private void register(BufferedReader bufferedReader) {
// ...
}
针对第 17 行报告 JD.VNU.NULL:BufferedReader 构造函数未引发异常,因此 bufferedReader 变量始终在第 20 行被重新赋值。