JD.METHOD.CBS

メソッドは静的です

JD.METHOD.CBS は仮想メソッドがメンバー変数にアクセスしない、または他の仮想メソッドを呼び出さないときにトリガーされます。

脆弱性とリスク

そのリスクは、クラスにおいて、不当に増えたメモリフットプリントです。これはモバイルや組み込み型システムにおいて、非常に慎重に扱う必要がある問題です。この指摘を回避するには、報告されたメソッドは静的になる必要があります。

脆弱コード例 1

コピー
 public class A {
     public static int val = 0;
     public int counter = 0;

     public int foo() { // method can be static
         val = 109;
         return val;
     }
     public int test() { // method can not be static
        val = 100*counter;
        return val;
    }
 } 

JD.METHOD.CBS が 5 行目に対して報告されています。メソッド「foo」は静的であると宣言できます。

メソッド「foo」は静的クラスメンバー「val」のみを使用し、任意の仮想クラスメソッドを呼び出しません。

修正コード例 1

コピー
 public class A {
     public static int val = 0;
     public int counter = 0;

     public static int foo() { // method can be static
         val = 109;
         return val;
     }
     public int test() { // method can not be static
        val = 100*counter;
        return val;
    }
 }