CS.WRONGSIG.CMPTO

'CompareTo' メソッドの誤りのあるシグネチャ

チェッカーは、'public int compareTo(Object)' 以外のシグネチャを持つ 'CompareTo' メソッド宣言にフラグを立てます。

脆弱性とリスク

チェッカーは通常、IComparable インターフェイスの interface メソッドをおそらく実装しようとしたインスタンスを検出します。メソッドが別のシグネチャを持つ場合、コンパレータを使用し、設計の意図が達成されないする場合、呼び出されません。

コード例

コピー
  class Foo {
      String name;
      int CompareTo(MyClass a) {          // defect
          return name.compareTo(a.name);  
      }
  }

Klocwork は、CompareTo メソッドが正しいシグネチャで宣言されない 3 行目にフラグを立てます。4 行目にはフラグがありません。これは、宣言ではなく、チェッカーが目的としていない CompareTo の使用法であるためです。