Ответ 1
Он выглядит вызванным правилом DesignForExtension
. Согласно документации:
Проверяет, что классы предназначены для расширения. Более конкретно, это применяет стиль программирования, где суперклассы предоставляют пустые "крючки", которые могут быть реализованы подклассами.
Точное правило заключается в том, что непривилегированные, нестатические методы классов, которые может быть подклассифицировано либо должно быть
abstract or final or have an empty implementation
Обоснование: этот стиль дизайна API защищает суперклассы от beeing разбиты на подклассы. Недостатком является то, что подклассы ограничены в их гибкость, в частности они не могут предотвратить выполнение кода в суперклассе, но это также означает, что подклассы не могут коррумпироваться состояние суперкласса, забыв назвать супер-метод.
Источник: http://sonar.15.n6.nabble.com/design-for-extension-rule-tp3200037p3200043.html
Но поскольку у вас есть модификатор final
, я бы сказал, что вы обнаружили ошибку и, возможно, захотите записать отчет об ошибке.
https://github.com/checkstyle/checkstyle/issues