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