1. 程式人生 > 其它 >Java基礎知識08--lambda表示式與函式式介面詳解

Java基礎知識08--lambda表示式與函式式介面詳解

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