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 行被重新赋值。

相关检查器