Есть ли способ заставить SonarQube предупреждать только о неполных операторах Switch?
Используя Java, SonarQube жалуется на операторы switch для значений enum, не имеющих default:
дело.
Приведенное обоснование:
"Требование к заключительному предложению по умолчанию - это защитное программирование. Предложение должно либо предпринимать соответствующие действия, либо содержать соответствующий комментарий о том, почему не предпринимается никаких действий. Когда переключатель охватывает все текущие значения перечисления - и особенно когда это не так". t - регистр по умолчанию все еще должен использоваться, потому что нет никакой гарантии, что enum не будет расширен."
Я не согласен с приведенными выше утверждениями - я хочу, чтобы следующее поведение вызывало предупреждение:
- Изменение перечисления, чтобы переключатель больше не охватывал все случаи.
Запрашивая регистр по умолчанию - мы не получим предупреждение при изменении перечисления, и коммутатор больше не будет обрабатывать все регистры.
1 ответ
SonarQube позволяет добавлять пользовательские правила.
Предполагая, что не существует никакого предупреждения, относящегося к правилу enum, о неполном покрытии случая коммутатора, вы можете просто добавить свое собственное правило в SQ и применить его ко всем экземплярам SonarLint, подключенным к вашему серверу SQ.