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 の使用法であるためです。