Lambda表達(dá)式
語法:
{參數(shù)}->{表達(dá)式或者函數(shù)體}
例子:
//無參數(shù),無返回值
() -> {System.out.println("Hello World");}
//有參數(shù),有返回值
x -> 5 * x
//多個參數(shù),有返回值
(integer a, integer b) -> (compare.(a, b))
當(dāng)body部分只有一條語句時,不需要寫return,也可以不寫大括號,當(dāng)參數(shù)部分只有一個參數(shù)時,也可以不寫括號
參數(shù)部分也不需要寫參數(shù)類型,編譯器會自動識別
在函數(shù)式接口可以直接使用Lambda表帶是來創(chuàng)建對象
函數(shù)式接口:只包含一個抽象方法的接口
如果需要將Lambda表達(dá)式作為參數(shù)傳遞,接受Lambda表達(dá)式的參數(shù)類型必須和該Lambda表達(dá)式的函數(shù)式接口兼容!
Lambda表達(dá)式有什么用呢?
簡便了代碼,相當(dāng)于語法糖
原本我們這么寫
new Thread(new Runnable() {
public void run() {
System.out.println("hello");
}
}).start();
使用Lambda表達(dá)式
new Thread(() -> {System.out.println("hello World");}).start();