Java Lambda行为参数化
我们可以将lambda表达式作为参数传递给方法。
例子
以下代码创建了一个名为Calculator的函数接口。
在Calculator中有一个称为calculate的方法,它接受两个int参数并返回一个int值。
在Main类中有一个引擎方法,它接受函数接口Calculator作为参数。它从计算器调用计算方法并输出结果。
在主方法中,我们用不同的lambda表达式调用引擎方法四次。public class Main {
public static void main(String[] argv) {
engine((x,y)-> x + y);
engine((x,y)-> x * y);
engine((x,y)-> x / y);
engine((x,y)-> x % y);
}
private static void engine(Calculator calculator){
int x = 2, y = 4;
int result = calculator.calculate(x,y);
System.out.println(result);
}
}
@FunctionalInterface
interface Calculator{
int calculate(int x, int y);
}
上面的代码生成以下结果。