Как отключить определенное правило checkstyle для определенной строки кода?

Да, я видел этот вопрос:

Как отключить определенный стиль проверки правило для конкретной строки кода?

Но я не могу комментировать, и я хотел спросить, возможно ли сделать то, что просил ОП:

Как отключить одно конкретное правило для строки кода

Я также видел это: cod">Есть ли способ заставить Checkstyle игнорировать определенные предупреждения в исходном коде?

Думаю, ответом на мой вопрос будет использование SuppressWithNearbyCommentFilter

Я просто не понимаю, как должны выглядеть мои комментарии в java.

Скажем, у меня есть следующий код:

public class MyDataContainer {
  /** the name */
  public String name;
}

и я хочу избавиться от предупреждения "Модификатор видимости" и только этого предупреждения.

Что мне нужно включить (используя плагин eclipse--cs.sf.net)?

И как должны выглядеть мои комментарии?

Мне удалось включить фильтр подавления комментариев и окружить весь класс

//CHECKSTYLE:OFF
//CHECKSTYLE:ON

но мне это решение не очень нравится.


person raudi    schedule 20.06.2011    source источник
comment
Вы уверены, что это так важно? Я имею в виду, что я получил кучу предупреждений во всех моих проектах в Eclipse даже для выпуска. Если вы знаете, что делаете, зачем вам желтый знак на полях в Eclipse?   -  person Snicolas    schedule 20.06.2011
comment
почему бы вам не удалить этот чек из checkstyle xml?   -  person abalogh    schedule 20.06.2011
comment
@Snicolas Это очень важно. Одно дело — улучшить качество кода. В наших проектах соглашения о коде содержат настройку предупреждений/ошибок в Eclipse, и весь проект не содержит предупреждений. Когда вы не заботитесь об этих предупреждениях, вы получите проекты с тысячами предупреждений за очень короткое время, и никто не будет заботиться о добавлении еще 10 предупреждений...   -  person Fabian Barney    schedule 20.06.2011
comment
@Snicolas: Честно? Я бы редко даже коммитил код на этапе разработки с предупреждениями...   -  person musiKk    schedule 20.06.2011
comment
@Snicolas: позор вам: P Нет никакого оправдания тому, чтобы когда-либо разрешать предупреждение компилятора при создании и фиксации нового класса. Нет никакого оправдания фиксации изменений в существующем классе без удаления предупреждений компилятора. Это качество кода и его суть.   -  person pap    schedule 20.06.2011
comment
Лол, мне действительно интересно, как добавление SerialVersionId в новый класс компонентов Swing имеет какое-либо отношение к качеству кода. Каждый позволит eclipse исправить предупреждение, присвоив ему 1 в качестве идентификатора... нет? Или иметь неиспользуемый оператор импорта? Но, возможно, вы правы, ребята, я подумаю об этом.   -  person Snicolas    schedule 20.06.2011
comment
@Snicolas Не вдаваясь в подробности некоторых предупреждений: когда вы и ваша команда находите некоторые из них вводящими в заблуждение или ненужными, то это правильный способ отключить эти предупреждения, а не игнорировать их. Их игнорирование делает ваш список предупреждений заполненным тысячами предупреждений, и тогда вы пропустите важные из них. С моей точки зрения, «представление о проблемах» всегда должно быть абсолютно чистым.   -  person Fabian Barney    schedule 20.06.2011
comment
Уже решено. Пожалуйста, проверьте ссылку [Нажмите здесь][1] [1]: stackoverflow.com/questions/4023185/   -  person    schedule 20.11.2014


Ответы (1)


Немного поздно, для дальнейшего использования:

вы можете использовать SuppressWithNearbyCommentFilter следующим образом:

<module name="SuppressWithNearbyCommentFilter">
   <property name="commentFormat" value="CHECKSTYLE DISABLE ([\w\|]+) FOR (-?\d+) LINES"/>
   <property name="checkFormat" value="$1"/>
   <property name="influenceFormat" value="$2"/>
</module>

В строке, где вы хотите отключить предупреждение, вы можете написать:

// CHECKSTYLE DISABLE <WarningName> FOR <# of lines> LINES

Например

// CHECKSTYLE DISABLE MagicNumber FOR 2 LINES

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

person Angelo    schedule 23.10.2012