Как я могу заставить checkstyle пропустить методы equals () и hashcode (), сгенерированные eclipse? - PullRequest
18 голосов
/ 11 ноября 2010

Наш проект содержит несколько классов, которые у нас есть методы equals () и hashCode (), сгенерированные Eclipse (щелчок правой кнопкой мыши -> Source -> Generate 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, но мы предпочли бы иметь возможность исключить только эти два метода.

Кто-нибудь знает, как создать пользовательское правило в Checkstyle, которое позволит нам исключить сгенерированные equals ()и методы hashCode (), без исключения всего класса?

1 Ответ

5 голосов
/ 11 ноября 2010

Вы должны установить SupressionCommentFilter. Подробнее об этом здесь .

Иногда существуют веские причины для нарушения чека. Когда речь идет о рассматриваемом коде, а не о личных предпочтениях, лучшее место для отмены политики - это сам код. Полуструктурированные комментарии могут быть связаны с проверкой.

...