使用Lambda表达式与不使用它之间的差异?

时间:2016-05-26 12:06:29

标签: java lambda

有人可以解释我使用lambda表达式和不使用它的方法之间的差异吗? 例如:

 Function<Double, Double> function;

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

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

我们获得了什么?

2 个答案:

答案 0 :(得分:0)

您的第二种方法接受一个双号并返回该号码+2。

您的第一种方法定义了Function,该Double接受Double个数字并返回Function,其值为原始数字+2。但是,它不会评估{ {1}}。

为了生成第二种方法的输出,您可以稍后将值传递给Function并对其进行评估:

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

的行为类似于

double d = methodCounting(x);

答案 1 :(得分:0)

  • Lambda是java 8中添加的新功能,仅用于获得最佳性能和更短代码。
  • Java 8仅为具有功能接口的lambda表达式提供支持。
  • 任何具有单一抽象方法的接口称为功能接口。
  • 功能界面也是Java 8中引入的新功能。
  • lambda表达式以更方便的方式隐式生成函数对象&#34;请参考。上面的代码。