私はJavaプロジェクトを解析するためにPMDをインストールしました。本当に素晴らしいツールです。私は、PMDのドキュメントをチェックアウトし、説明は言う抽象クラスの空のメソッド
を「抽象クラスで空のメソッドを代わりに抽象的でなければなりません」
:
はとにかく、私は言っていくつかのエラーが得ましたの開発者は、適切なコードを記述するのではなく、空の実装に頼ることがあります。
だから私はこのコードスタイルエラーの背後にある理由を理解していると思うが、次のシナリオを考えてみよう:私はエンティティと呼ばれる抽象クラスがあります。このクラスには、デフォルト実装のブール値メソッドがあります。 (削除時に関連エンティティを削除するかどうかを制御します)。派生クラスのほんの少数だけが、このデフォルトの動作をtrueにオーバーライドします。
デフォルトの実装を削除し、すべての派生クラスに動作を宣言する必要がありますか? 本当にこのパターンはとても悪い習慣だと思いますか?
明確化: PMDは、単一のreturn文を持つメソッドを空として扱います。
だけでなく、PMDはあまりにも空としてブール値またはnullを返すメソッドを扱います – LiorH