實例
// 1 完成匿名函數
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("run");
}
};
new Thread(runnable).start();
// 2 省略實例化對象
Runnable runnable1 = () -> {
System.out.println("name");
};
new Thread(runnable1).start();
// 3 lambda表達式
new Thread(() -> {System.out.println("123");}).start();
// 4 省略多餘的字符
new Thread(() -> System.out.println("456")).start();
執行結果
lambda表達式可以理解爲一種匿名函數的代替
JDK8提供了一個註解幫助我們編譯時檢測語法時候符合@Functioninterface
引入了箭頭操作符
左側參數,右側方法體
注意:
1.參數類型自動判斷
2.如果形參列表爲空,只需保留();
3.如果形參只有1個,()可以省略
4.如果執行語句只有1個,且無返回值,{}可以省略,並同時省略return
5.lambda不會生成一個單獨的內部文件
6.lambda訪問局部變量,必須是final