2016-08-03 9 views
0

私は現在java8に変換しようとしているjava7のプロジェクトを持っています。Javaで機能インタフェースを使用する場合8

私は以下のようにJava 8に変換したメソッドを呼び出すコードを持っています。

JAVA 7:

Long id=10; 
Student student= Student.findById(id); 

JAVA 8

Long id=10; 
Function<Long,Student> f=Student::findById; 
f.apply(id); 

今、私の質問は、この方法はJAVA 8にこれらのような呼び出しを変換するために、どんな意味がありません。

ので、JAVA 7およびJAVA 8に上記のコードの違いは何である場合

誰もこれを明確にしてくださいすることができ???

+2

各行ごとに新しいJava 8機能を使用することはお勧めしません。時には、あなたの古い素敵なコードを駄目にするかもしれません。 –

答えて

2

Java 7の例では、2行目でfindById()を呼び出し、studentに結果を割り当てます。 Java 8コードでメソッド参照を使用することにより、まずfのfindById()メソッドへの参照を保存し、そのメソッドを3行目で呼び出します。メソッド参照により、メソッドの呼び出しを遅らせることができます。 Streamsと組み合わせると、をこのようにすることができます。

たとえば、メソッド参照は、何の利点も与えないため、使用することは意味がありません。メソッド参照を他の関数に渡したい場合、または呼び出しを遅らせる場合は、メソッド参照を使用することができます。それ以外の場合は、明示的な適用呼び出しでコードを乱雑にするだけです。

例を紹介するJava 8の紹介を見ることをお勧めします。私はFunctional Programming in Javaという本を読んで、それをお勧めします。

+0

助けてくれてありがとう! – Prakash

関連する問題