Если вы просмотрели списки правил Checkstyle, PMD и Findbugs, вы увидели, что все три обеспечивают ценный вывод, и все три до некоторой степени перекрываются, а также вносят свои собственные уникальные правила в таблицу. Вот почему такие инструменты, как Sonar, используют все три.
Тем не менее, Findbugs имеет самые специфические или нишевые правила (например, «Сомнительная отловка IllegalMonitorStateException» - как часто вы можете столкнуться с этим?), Поэтому его можно использовать практически без конфигурации или к его предупреждениям следует относиться серьезно , С Checkstyle и PMD правила являются более общими и стилевыми, поэтому их следует использовать только с пользовательскими файлами конфигурации, чтобы избавить команду от лавины неактуальной обратной связи («Tab char в строке 5», «Tab char в строке 6», "Tab char на 7-й строке" ... вы получите изображение). Они также предоставляют мощные инструменты для написания ваших собственных расширенных правил, например, Контрольный стиль Правило DescendentToken .
При использовании всех трех (особенно с таким инструментом, как Sonar) все они должны быть настроены отдельно (требуется не менее нескольких дней, чтобы охватить все правила), при этом следует обратить внимание на предотвращение дублирования (все три инструмента обнаруживают этот hashCode ( ) было переопределено и равно (), например, нет).
Таким образом, если вы считаете, что статический анализ кода полезен, отказ от значения, предоставленного любым из трех, не имеет смысла, но чтобы использовать все три, вам нужно потратить время на их настройку, чтобы получить полезную обратную связь.