函数式编程 - 返回函数

高阶函数可以返回一个函数,但如何使用 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


关于我们 | 隐私条款 | 学习路线
返回顶部