函数式编程 - 返回函数
高阶函数可以返回一个函数,但如何使用 Java 8 来实现呢?Java 8 提供了可以接受 lambda 表达式的 Function 接口。高阶函数可以返回 lamdba 表达式,因此可以使用此高阶函数创建任意数量的函数。请参见下面的示例 −
import java.util.function.Function;
public class FunctionTester {
public static void main(String[] args) {
Function<Integer, Integer> addOne = adder(1);
Function<Integer, Integer> addTwo = adder(2);
Function<Integer, Integer> addThree = adder(3);
//result = 4 + 1 = 5
Integer result = addOne.apply(4);
System.out.println(result);
//result = 4 + 2 = 6
result = addTwo.apply(4);
System.out.println(result);
//result = 4 + 3 = 7
result = addThree.apply(4);
System.out.println(result);
}
//adder - 高阶函数
//以 lambda 表达式的形式返回一个函数
static Function<Integer, Integer> adder(Integer x){
return y -> y + x;
}
}
输出
5 6 7