函數(shù)式編程
面向?qū)ο缶幊淌菍?duì)數(shù)據(jù)進(jìn)行抽象;函數(shù)式編程是對(duì)行為進(jìn)行抽象。
核心思想:使用不可變值和函數(shù),函數(shù)對(duì)一個(gè)值進(jìn)行處理,映射成另一個(gè)值。
Lambda表達(dá)式
lambda表達(dá)式僅能放入如下代碼: 預(yù)定義使用了 @Functional 注釋的函數(shù)式接口,自帶一個(gè)抽象函數(shù)的方法,或者SAM(Single Abstract Method 單個(gè)抽象方法)類型。這些稱為lambda表達(dá)式的目標(biāo)類型,可以用作返回類型,或lambda目標(biāo)代碼的參數(shù)。
例如,若一個(gè)方法接收Runnable、Comparable或者 Callable 接口,都有單個(gè)抽象方法,可以傳入lambda表達(dá)式。類似的,如果一個(gè)方法接受聲明于 java.util.function 包內(nèi)的接口,例如 Predicate、Function、Consumer 或 Supplier,那么可以向其傳lambda表達(dá)式