При использовании Eclipse с FindBugs вы можете пометить ошибку как не ошибку и удалить ее из списка ошибок? - PullRequest
18 голосов
/ 30 октября 2008

FindBugs обнаружил потенциальную ошибку в моем коде. Но это не ошибка.

Можно ли пометить это вхождение как "не ошибка" И удалить его из списка ошибок?

Я достаточно четко задокументировал, почему для каждого случая это не ошибка.

Например. Класс реализует сопоставимый интерфейс. у него есть метод сравнения. Однако я не переопределил метод equals.

FindBugs не нравится это, поскольку JavaDocs заявляет, что рекомендуется

(x.compareTo(y)==0) == (x.equals(y))

Хотя в моем случае вышеупомянутое условие есть и всегда будет верным.

Ответы [ 3 ]

34 голосов
/ 30 октября 2008

Вместо использования фильтров вы также можете использовать аннотацию SuppressWarnings . Вы должны использовать аннотацию из пакета findbugs, то есть вам нужно либо импортировать, либо использовать его полное имя. Это потому, что кроме SuppressWarnings из JDK у него есть «Class» хранения, который необходим, потому что findbugs работает с скомпилированным байт-кодом вместо исходного кода.

Пример:

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="EQ_COMPARETO_USE_OBJECT_EQUALS", 
    justification="because I know better")

Есть один угловой случай, когда вам, вероятно, не следует использовать аннотацию: если ваш код представляет собой библиотечный код, который заканчивается в jar, который может использоваться другими проектами и , вы все еще на Java5 , Причиной этого является ошибка в JDK, которая приводит к сбою javac, если аннотация отсутствует в пути к классам.

6 голосов
/ 30 октября 2008

Возможно, добавив фильтр в качестве параметра findbugs

Предложения соответствия могут соответствовать только той информации, которая фактически содержится в экземплярах ошибки

<Match>
   <Class name="com.foobar.MyClass" />
   <Method name="myMethod" />
   <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" />
</Match>
0 голосов
/ 30 октября 2008

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

что если код изменится через некоторое время?

...