jdk8

函數是接口:

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

完整語法

(type1 arg1,type2 arg2,..) -> {body}函數

相關文章
相關標籤/搜索