EN JP CN

CS.WRONGSIG.CMPTO

CS.WRONGSIG.CMPTO

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

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

脆弱性とリスク

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

コード例

1  class Foo {
2      String name;
3      int CompareTo(MyClass a) {          // defect
4          return name.compareTo(a.name);  
5      }
6  }

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