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
广告