Iterator与LIstIterator接口在java中的区别有哪些
289
2022-10-25
java懒惰评估实现方法
1、说明
惰性评估是将表达式的评估延迟到需要时才进行的过程。java是严格的立即赋值评估。
可以使用lambda表达式和高阶函数将其重写为延迟评估的版本。
2、实例
public class LazySample {
public static void main(String[] args) {
//这是一个lambda表达式,表现为闭包
UnaryOperator
System.out.println("executing add");
return t + t;
};
//这是一个lambda表达式,表现为闭包
UnaryOperator
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
boolean add, Function
Function
) {
// Java的?会懒惰计算表达式,因此仅执行所需的方法
return (add ? onAdd.apply(t) : onMultiply.apply(t));
}
}
实例扩展:
public class SingleLock
private Callable
private V value;
public SingleLock(Callable
this.codeBlock = codeBlock;
}
@Override
public synchronized V get() {
if (value == null) {
setValue();
}
return value;
}
private void setValue() {
try {
value = codeBlock.call();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
评论列表