說明
1、惰性評估是將表達式的評估延遲到需要時才進行的過程。Java是嚴格的立即賦值評估。
2、可以使用lambda表達式和高階函數(shù)將其重寫為延遲評估的版本。
實例
public class LazySample {
public static void main(String[] args) {
//這是一個lambda表達式,表現(xiàn)為閉包
UnaryOperatoradd = t -> {
System.out.println("executing add");
return t + t;
};
//這是一個lambda表達式,表現(xiàn)為閉包
UnaryOperatormultiply = t -> {
System.out.println("executing multiply");
return t * t;
};
//傳遞Lambda閉包而不是普通函數(shù)
System.out.println(addOrMultiply(true, add, multiply, 4));
System.out.println(addOrMultiply(false, add, multiply, 4));
}
//這是一個高階函數(shù)
static <t, r="">R addOrMultiply(
boolean add, Function<t, r=""> onAdd,
Function<t, r=""> onMultiply, T t
) {
// Java的?會懶惰計算表達式,因此僅執(zhí)行所需的方法
return (add ? onAdd.apply(t) : onMultiply.apply(t));
}
}
以上就是java懶惰評估的實現(xiàn),希望對大家有所幫助。更多關(guān)于“java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴謹,每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。