Lambda表示式在函式式介面中的使用

2021-10-09 14:05:31 字數 1419 閱讀 2821

1、什麼是函式式介面

所謂的函式式介面(functional inte***ce)是當前的介面中只能包含乙個待實現的抽象方法;說到函式式介面就要說到乙個註解@functionalinte***ce,該註解是乙個空的註解,主要用於編譯級錯誤檢查,加上該註解,當你寫的介面不符合函式式介面定義的時候,編譯器會報錯。接下來舉幾個例子:

由上述可知,介面中有多於乙個或者沒有待實現的抽象方法則不符合函式式介面的定義,當加上@functionalinte***ce註解以後就會有不合乎格式的提示。如果需要在函式式介面中提供其他的方法,jdk1.8以後可以使用default方法的形式來提供。

2、使用lambda表示式來實現函式式介面

提供函式式介面如下:

@functionalinte***ce

public

inte***ce

lambdaex1

介面的使用如下:

// 在jdk1.8之前使用匿名內部類

public

static

void

main

(string[

] args)};

system.out.

println

(lambdaex.

calculate(10

,20))

;}// 在jdk1.8之後使用lambda表示式

public

static

void

main

(string[

] args)

;// 當{}內只有一條語句時,{}可以省略,lambdaex1 lambdaex1=(val1,val2)->math.addexact(val1, val2);即可

system.out.

println

(lambdaex1.

calculate(10

,20))

;}

注意:

只有函式式的介面的可以使用lambda表示式,其他的介面或者方法不能用。在日常的開發過程中有很多函式式介面使用lambda表示式的例子,如:map介面中**foreach()**方法的實現;多執行緒中run方法的實現等。

Lambda表示式2 函式式介面

只包含乙個抽象方法的介面,成為函式式介面。可以通過lambda表示式來建立該介面的物件。可以在任意函式式介面使用 functionalinte ce註解,可以檢查其是否是乙個函式式介面。functionalinte ce public inte ce test1 作為引數傳遞的lambda表示式 作...

Lambda 表示式 與 函式式介面

lambda 表示式,也可稱為閉包,是乙個匿名函式 語法 parameters 將引數和實現分開 parameters 引數列表。引數型別可省略 只有乙個引數 可省略 引數名稱不允許與外層區域性變數相同。函式的具體實現。只有一行語句 可省略,return不用寫。只能引用標記了 final 的外層區域...

lambda表示式與函式式介面(一)

概念 函式式介面 author zhuhuix date 2020 07 12 functionalinte ce public inte ce functioninte ce 函式式程式設計 案例1 使用函式式介面做為引數 使用lambda表示式重寫函式式介面中的抽象方法 author zhuhu...