ラムダでJavaのデフォルトの方法

user1318369:

私は、Java 8の構文を学び、インタフェースの下に私たちのアプリケーションのコードの一部に出くわしています:

default EmployeeEnricher employeeEnricher() {
      return builder -> {
          return;
      };
}

誰かが私にはどのような上記の構文の手段を理解する助けを喜ばせることはできますか?

この方法の複数の実装は、独自のロジックをそれぞれは、アプリケーションです。

ヤシンHajaj:

それはちょうど返すEmployeeEnricher基本的にどのConsumer<Builder>インターフェースを実装したクラスがない場合(または同じ種類の機能インタフェース)そのパラメータの意味で何もしないことを@Override、このメソッドを、これは(何も起こりませんという意味)のデフォルトの動作になりますが。

あなたのアプリケーションでは、使用して、パラメータで指定したビルダーを使用して、異なる方法で濃縮され、おそらく従業員の異なる種類に遭遇します employeeEnricher().accept(builder)

この手段の実装は私のために二つのことを意味することができます:

  • デザインが貧弱であり、すべての従業員が独自の実装を持っている必要があり、このインタフェースのメソッドがあることを意味していないはずのいずれかdefaultが、単に古典的なabstractインタフェースのメソッド

  • 一部の従業員は、アプリケーションのコンテキスト内で濃縮されませんので、この方法は、感覚を作るデフォルトの実装を提供していますどちらか

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=201826&siteId=1