说明
1、惰性评估是将表达式的评估延迟到需要时才进行的过程。Java是严格的立即赋值评估。
2、可以使用lambda表达式和高阶函数将其重写为延迟评估的版本。
实例
public class LazySample {
public static void main(String[] args) {
//这是一个lambda表达式,表现为闭包
UnaryOperatoradd = t -> {
System.out.println("executing add");
return t + t;
};
//这是一个lambda表达式,表现为闭包
UnaryOperatormultiply = t -> {
System.out.println("executing multiply");
return t * t;
};
//传递Lambda闭包而不是普通函数
System.out.println(addOrMultiply(true, add, multiply, 4));
System.out.println(addOrMultiply(false, add, multiply, 4));
}
//这是一个高阶函数
static <t, r="">R addOrMultiply(
boolean add, Function<t, r=""> onAdd,
Function<t, r=""> onMultiply, T t
) {
// Java的?会懒惰计算表达式,因此仅执行所需的方法
return (add ? onAdd.apply(t) : onMultiply.apply(t));
}
}
以上就是java懒惰评估的实现,希望对大家有所帮助。更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。