📌  相关文章
📜  私有静态 void calcola(int i , 函数<integer , integer>fn){ int r = 0 ; for (int j = i ; j&gt;0 ; j--) r = fn.apply(r); System.out.println(r); } calcola (9 , (p) -&gt; { return p + 1;}); (1)

📅  最后修改于: 2023-12-03 15:27:20.208000             🧑  作者: Mango

Java中的高阶函数——函数作为参数

在Java中,函数也可以作为参数传递给其他函数,这种函数作为参数的方式称为高阶函数。其中,函数<Integer, Integer>表示接收一个整型参数,返回一个整型结果的函数类型。

以下是一个使用高阶函数的例子:

private static void calcola(int i, 函数<Integer, Integer> fn) {
    int r = 0;
    for (int j = i; j > 0; j--) {
        r = fn.apply(r);
    }
    System.out.println(r);
}

calcola(9, (p) -> { return p + 1; });

上述代码中,calcola函数接收两个参数:一个整数i,一个函数fn。其中,fn是一个接收一个整数参数,返回一个整数结果的函数。函数calcola内部使用循环调用fn,最终将计算出的结果打印输出。

在上述例子中,我们使用了Java 8中的Lambda表达式作为函数参数。具体来说,Lambda表达式(p) -> { return p + 1; }定义了一个函数,接收一个整数p,将p+1作为结果返回。这个Lambda表达式被传递给calcola函数,作为其第二个参数fn

总的来说,函数作为参数是Java 8带来的新功能之一,它可以帮助我们更方便地编写复杂的算法和逻辑,提高代码的可读性和可维护性。