Java 函数式编程——闭包



闭包是一个函数,它是一个函数与其周围状态的组合。闭包函数通常可以访问外部函数的范围。在下面给出的示例中,我们创建了一个 getWeekDay(String[] days) 函数,它返回一个可以返回某一星期中的文本等效项的函数。此处,getWeekDay() 是一个闭包,它返回一个围绕调用函数作用域的函数。

下面的示例显示了闭包的工作原理。

import java.util.function.Function;

public class FunctionTester {
   public static void main(String[] args) {
      String[] weekDays = {"Monday", "Tuesday", "Wednesday", "Thursday",
         "Friday", "Saturday", "Sunday" };
      Function<Integer, String> getIndianWeekDay = getWeekDay(weekDays);
      System.out.println(getIndianWeekDay.apply(6));      
   }

   public static Function<Integer, String> getWeekDay(String[] weekDays){
      return index -> index >= 0 ? weekDays[index % 7] : null;
   }
}

输出

Sunday
广告