Есть ли способ заставить SonarQube предупреждать только о неполных операторах Switch?

Используя Java, SonarQube жалуется на операторы switch для значений enum, не имеющих default: дело.

Приведенное обоснование:

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

Я не согласен с приведенными выше утверждениями - я хочу, чтобы следующее поведение вызывало предупреждение:

  • Изменение перечисления, чтобы переключатель больше не охватывал все случаи.

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

1 ответ

SonarQube позволяет добавлять пользовательские правила.

Предполагая, что не существует никакого предупреждения, относящегося к правилу enum, о неполном покрытии случая коммутатора, вы можете просто добавить свое собственное правило в SQ и применить его ко всем экземплярам SonarLint, подключенным к вашему серверу SQ.

Другие вопросы по тегам