JD.CALL.WRONGSTATIC

当通过实例引用调用静态方法时,出现 JD.CALL.WRONGSTATIC。

漏洞与风险

通过实例引用调用静态方法是一种不正确的编码实践,会导致不正确的行为。例如,如果通过实例引用调用静态方法 interrupted(),则返回的状态将会是当前线程的状态,而不是给定实例的状态。如果要获取实例的状态,则使用非静态调用方法 isInterrupted()。

缓解与预防

不要通过实例引用调用静态方法。

示例 1

复制
      void run(final Thread thread) throws Throwable{
         thread.interrupted();
     }

针对第 10 行报告 JD.CALL.WRONGSTATIC:通过实例引用调用静态方法“java.lang.Thread.interrupted”。