有人可以解释我使用lambda表达式和不使用它的方法之间的差异吗? 例如:
Function<Double, Double> function;
public void methodCounting() {
this.function = x -> x = x + 2;
}
public double methodCounting(double x) {
x = x + 2;
return x;
}
我们获得了什么?
答案 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)