Я только что установил PMD для анализа моего Java-проекта. Действительно хороший инструмент, очень рекомендуется.
В любом случае, я получил несколько ошибок, говорящих:
«Пустой метод в абстрактном классе должен быть абстрактным»
Я проверил документацию PMD и объяснение говорит:
, так как разработчик может полагаться на эту пустую реализацию, а не кодировать соответствующую
Так что я думаю, что понимаю причину этой ошибки стиля кода, но рассмотрим следующий сценарий: у меня есть абстрактный класс, называемый Entity. Этот класс имеет логический метод с реализацией по умолчанию. (определяет, следует ли удалять связанные объекты при удалении). Только некоторые из производных классов переопределяют это поведение по умолчанию на true.
Должен ли я удалить реализацию по умолчанию и заставить все производные классы объявлять свое поведение?
Вы действительно думаете, что эта модель - такая плохая практика?
Пояснение: PMD рассматривает метод с одним оператором возврата как пустой.