Java基礎知識08--lambda表示式與函式式介面詳解
阿新 • • 發佈:2021-09-01
1.什麼是Lambda表示式?
Lambda 表示式,也可稱為閉包,它是推動 Java 8 釋出的最重要新特性。
Lambda 允許把函式作為一個方法的引數(函式作為引數傳遞進方法中)。
使用 Lambda 表示式可以使程式碼變的更加簡潔緊湊。
2.使用Lambda的限制條件
Lambda並不是任何地方都可以使用,Lambda表示式需要“函式式介面”的支援。
3.什麼是函式式介面?
介面中只有一個抽象方法的介面,稱為函式式介面,可以用@FunctionalInterface修飾一下,這裡需要注意的是:未使用@FunctionalInterfaces註解的介面未必就不是函式式介面,一個介面是不是函式式介面的條件只有一條,即介面中只有一個抽象方法的介面(Object類中的方法不算)。而使用@FunctionalInterface註解修飾了的介面就一定是函式式介面,新增@FunctionalInterface註解可以幫助我們檢查是否是函式式介面。
函式式介面(Functional Interface)是java8新增的特性,它是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的介面。函式式介面可以被隱式轉換為lambda表示式。
JDK中常見的函式式介面有:
package java.lang; @FunctionalInterface public interface Runnable { void run(); }
package java.util.concurrent; @FunctionalInterface public interface Callable<V> { V call()throws Exception; }
4.lambda表示式基礎語法
java中,引入了一個新的操作符“->”,該操作符在很多資料中,稱為箭頭操作符,或者lambda操作符;箭頭操作符將lambda分成了兩個部分:
左側:lambda表示式的引數列表
右側:lambda表示式中所需要執行的功能,即lambda函式體
4.1 語法格式一:無引數,無返回值
參考文獻:https://www.jianshu.com/p/8d7f98116693
https://www.cnblogs.com/wuhenzhidu/p/lambda.html