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