2016-05-26 21 views
-2

ラムダ式を使用する方法と使用しない方法の違いを説明できる人はいますか? 例:ラムダ式を使用する場合と使用しない場合の違いは?

Function<Double, Double> function; 

public void methodCounting() { 
     this.function = x -> x = x + 2; 
} 

public double methodCounting(double x) { 
      x = x + 2; 
      return x; 
    } 

何が得られますか?

+0

@エレー私は2番目の機能の型が間違っています。 – yerpy

+1

ラムダ式では、最適化されたパフォーマンスと短いコード以外は何も得られません。しかし、あなたの場合、両方の例が同じです –

+0

@SimonSchüpbachので、すべてのパフォーマンスと短いコードについてですか? – yerpy

答えて

0

あなたの第2の方法は、二重番号を受け付け、その数+ 2

を返すあなたの第一の方法は、Double番号を受け取り、その値はそうでない2 +オリジナルであるDoubleを返すFunctionを定義し、ただし、それはFunctionと評価されます。

第二の方法の出力を生成するためには、後でそのFunctionに値を渡すと、それを評価することができます:

Double d = function.apply(x); // will assign x+2 to d 

double d = methodCounting(x); 
+0

ええ、「適用」メソッドの後でこの値を割り当てます。ラムダを使っているなら私たちが得られるものだけを知りたい – yerpy

0
  • ラムダがあると同様に振る舞います新しい機能は、最適なパフォーマンスと短いコードのためにのみJava 8で追加されました。
  • Java 8は、ラムダ式を機能的なインターフェイスでのみサポートしています。
  • 単一の抽象メソッドを持つすべてのインターフェイスは、機能インターフェイスと呼ばれます。
  • Functional Interfaceは、Java 8で導入された新機能です。
  • ラムダ式は暗黙的に関数オブジェクトを「より便利な方法で」生成します。上記のコード。
関連する問題