EN JP CN

JD.CALL.WRONGSTATIC

JD.CALL.WRONGSTATIC

JD.CALL.WRONGSTATIC は、static メソッドがインスタンス参照によって呼び出される場合に表示されます。

脆弱性とリスク

static メソッドをインスタンス参照によって呼び出すのは好ましくないコーディング手法であり、不適切な挙動を生じる可能性があります。たとえば、static メソッド interrupted() がインスタンス参照によって呼び出される場合、返される状態は、目的のインスタンスの状態ではなく、現在のスレッドの状態です。インスタンスの状態を取得する必要がある場合には、non-static 呼び出しの isInterrupted() を使用してください。

軽減と防止

static メソッドをインスタンス参照によって呼び出さないでください。

例 1

9      void run(final Thread thread) throws Throwable{
10         thread.interrupted();
11     }

JD.CALL.WRONGSTATIC が 10 行目に対して報告されています。static メソッド 'java.lang.Thread.interrupted' がインスタンス参照から呼び出されています。