18

私たちのプロジェクトには、Eclipse によって生成された equals() および hashCode() メソッドを持ついくつかのクラスが含まれています (右クリック -> ソース -> hashCode() および equals() を生成)。

例:

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    final MyTO other = (MyTO) obj;
    if (num != other.num)
        return false;
    if (name == null) {
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))
        return false;
    if (table == null) {
        if (other.table != null)
            return false;
    } else if (!table.equals(other.table))
        return false;
    return true;
}

これらのメソッドは私たちのアプリケーションではうまく機能しますが、残念ながら Checkstyle による循環的複雑度チェックに合格しません。これらのメソッドは自動生成されるため、その複雑さは気にしません。クラス全体を Checkstyle から除外することもできますが、これら 2 つのメソッドだけを除外できるようにすることをお勧めします。

クラス全体を除外することなく、生成された equals() および hashCode() メソッドを何らかの方法で除外できるようにするカスタムルールを Checkstyle で作成する方法を知っている人はいますか?

4

1 に答える 1

5

を設定する必要がありSupressionCommentFilterます。詳細については、こちらをご覧ください。

チェックに違反する正当な理由がある場合もあります。これが問題のコードの問題であり、個人的な好みではない場合、ポリシーをオーバーライドするのに最適な場所はコード自体です。半構造化コメントをチェックに関連付けることができます。

于 2010-11-11T19:40:45.943 に答える