Feature Envy なコードの臭いを報告します。 あるメソッドが他のクラスのメソッドを 3 回以上呼び出している場合に警告がスローされます。 ライブラリクラス、親クラス、および包含されるクラスまたは包含するクラスへの呼び出しは、このインスペクションでは考慮されません。 Feature Envy は多くの場合、対象の機能が不適切なクラスにあることを示しています。

例:


  class JobManager {
    // 警告: このメソッドは Job クラスの
    // 3 つのメソッドを呼び出しています。
    // この一連の呼び出しは Job クラス自体に
    // 移動したほうが賢明です。
    void performJob(Job job) {
      job.beforeStart();
      job.process();
      job.afterProcessing();
    }
  }