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”。