JavaのラムダとOOPの話

japhy:

我々は、Java 8以来、私たちはラムダを使用することができ、Javaはオブジェクト指向言語であることを知っています。しかし、私はいくつかの質問を持っていると希望を誰も私にいくつかのアドバイスを与えることができます。

  1. アクションとメソッドの違いは何ですか?
  2. ラムダは、アクションを定義し、それはOOPに対して思えます。私たちは、そのアクションを定義するためのオブジェクトのメソッドを記述するために使用されます。そして、我々は、キーワードの新しいにより、そのオブジェクトのインスタンスを取得します。そのインスタンスは、そのフィールドやメソッドを持っているので、対象、役割になります。しかし、ラムダは、ちょうどこの構造を破壊します。私は、プロジェクト内のラムダを適切に使用する方法を疑問に思います。
GhostCat敬礼モニカC.:

Javaはオブジェクト指向言語ですが、最後の年間を通じて、Javaは、他の多くの重要な言語の試みのようになることをより多くの FP(たとえばC ++を考えると、最近それに追加してしまったすべてのFPのサポート)。

関数型プログラミングの一つのコア要素:高階関数「何かを行うコードは、」あなたは自分自身で定義し、周り渡すことができるものとなります。

だから、はい、厳格なOOPの意味でのラムダ、及びクロージャはぎこちなく見えます。しかし、Javaは単にここで、特定の傾向に従っています。

そして、個人的な意見は今:Javaはそれは、関連滞在するん。OOPの概念は問題の非常に特定のセットを解決するために、「発明」し、多くの他の問題を表現することができる/はるか/エレガントな方法でFPパラダイムを使用して解きます。

おすすめ

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