關於Java的lambda表示式的一些總結

2021-09-19 16:23:16 字數 1009 閱讀 7656

lambda表示式

格式:  ()->{}
表示式如果只有一句話,可以不用{},也不能用{};

無需指定返回型別,會由上下文推導而得;

lambda表示式要麼每乙個分支都需要有返回值,要麼每乙個分支都沒有返回值;

如果表示式只有乙個引數,可以省略();

lambda表示式內部可以捕獲外部變數的值,但這個值必須是最終變數,即不能改變;

lambda表示式中宣告乙個與區域性變數同名的的變數或引數是不合法的;

在乙個lambda表示式中使用this關鍵字,是指建立這個lambda表示式的方法的this引數,即這個類的this;通過this對成員變數的操作修改是允許的。(說簡單點就是在使用和普通正常的在方法中使用this沒有區別)

函式式介面:對於只有乙個抽象方法的介面,需要這種介面的物件時,就可以提供乙個lambda表示式。這種介面稱為函式式介面

比如comparator介面只有乙個compare()方法,因此它是乙個函式式介面;

當使用arrays.sort(陣列,實現comparator介面的例項)方法時,第二個引數可以直接用lambda表示式的**塊

方法引用例如

system.out::println 等價於 x->system,out.println(x)

math::pow 等價於 (x,y)-> math.pow(x,y)

前兩種方法引用等價於提供方法引數的lambda表示式。

第三種情況,第乙個引數會成為方法的目標

例如string::comparetoignorecase 等價於 (x,y)->x.comparetoignorecase(y)

關於Lambda表示式

lambda表示式是c 3.0的一種新語法,語法簡潔 為編寫匿名方法提供了更簡明的函式式的句法.我通過乙個示例來說明lambda表示式的原理 lambda表示式和匿名方法都 於委託 我們來看看委託的使用 在c 1.0時 c 2.0時可以使用匿名方法 c 3.0使用lambda表示式 使用lambda...

關於lambda表示式

lambda函式也叫做匿名函式,就是說沒有具體名稱的函式。lambda只是乙個表示式,一般用來定義簡單的函式,不能共享給別的程式呼叫。lambda函式可以使用任何數量的引數,但只能有乙個表示式。會返回乙個函式物件,但這個物件不會賦給乙個識別符號。lambda函式可以在需要函式物件的任何地方使用。用法...

java學習 lambda表示式

public class lambda public static void main string args sort函式的第二個引數需要乙個實現了comparator介面的類的物件 arrays.sort strings,new lengthcomparator for string str s...