Sonarlint [squid: S1186]: метод не должен быть пустым в конструкторе в Spring Tool Suite

Я использую Sonarlint V3.5.0 в Spring Tool Suite. Я получаю предупреждение squid:S1186, когда у меня есть конструктор по умолчанию внутри кода, например:

public class TestClass{
    public TestClass() {}
}

Это немного раздражает, когда это предупреждение появляется постоянно. Как я обнаружил, SonarSource решил это как ошибку в версии 3.5, но последняя версия Sonarlint все еще выдает это предупреждение.

Как я могу решить эту проблему с помощью Sonarlint? Спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
1 905
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Как указано в OP, у команды SonarSource возникли проблемы с вариант использования, описанный в вопросе.

Пожалуйста, примите во внимание следующее, прежде чем думать о игнорировании правила:

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

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

Учитывая тот факт, что пустая область действительно является анти-шаблоном, я бы предложил добавить комментарий внутри пустой области конструктора, объясняющий, что явный общедоступный конструктор по умолчанию требуется из-за использования STS.

Это, очевидно, решит проблему, поднятую SonarLint.

Если у вас есть много экземпляров автоматически сгенерированных пустых конструкторов по умолчанию - вы должны иметь возможность использовать свои IDE для поиска / замены решения с регулярным выражением, чтобы заменить пустые области областями, содержащими комментарий, объясняющий, почему это так.

Спасибо за Ваш ответ. Я попытаюсь использовать сервер SQ, чтобы решить эту проблему.

MenAmy 27.05.2018 11:57

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