函數是接口:
- 若是一個接口只有一個抽象方法,那麼該接口就是一個 函數式接口。
- 若是在接口上聲明瞭FunctionInterface註解,那麼編譯器就會按照函數式接口的定義要求該接口。
- 若是某個接口只有一個抽象方法,並無聲明FunctionInterface註解,也會是一個函數式接口。
- 將函數做爲一等公民的語言中,Lambda表達式的類型是函數,但在Java中,Lambda表達式是對象,他們必須依附於一類特別的對象類型--函數式接口(FunctionalInterface)
- Java Lambda表達式是一種匿名函數;他是沒有什麼的方法,即沒有訪問修飾符、返回值聲明和名字;
- Lambda表達式的做用
- 傳遞行爲,而不單單是值;提高抽象層次;API重用性更好;更加靈活;
- 傳統作法是將行爲提早定義好,Lambda表達式能夠在使用的時候傳遞行爲
完整語法
(type1 arg1,type2 arg2,..) -> {body}函數