Lambda表達式的標準格式:
由三部分組成
a.—些參數
b.一個箭頭
c.一段代碼格式:
(參數列表)->{一些重寫方法的代碼}
解釋説明格式:
():接口中抽象方法的參數列表,沒有參數,就空着;有參數就寫出參數,多個參數使用逗號分隔
->:傳遞的意思,把參數傳遞給方法體{}
{}:重寫接口的抽象方法的方法體
匿名內部類中最關鍵的內容是方法參數, 方法體, 返回值。
所以最好的方式是隻關注這核心的三個內容。
lambda表達式就是隻關注着三個內容
Lambda表達式的標準格式:
(參數類型 參數名) -> {
方法體;
返回值;
}
注意:
1. 小括號裏面可以寫多個參數,多個參數之間用逗號隔開。
2. ->是一個運算符,表示指向性動作。
3. 大括號中要寫方法體和返回值, 和之前傳統方法的寫法基本一致。
Lambda表達式可以省略面向對象中條條框框,讓我們只關注最核心的內容。
函數式編程思想: 可推導,就是可省略。
因為Thread構造方法中要傳遞一個Runnable接口類型的參數,所以能夠推導出來參數類型, 所以可以省略new Runnable
因為實現接口的時候要重寫接口中的抽象方法, 重寫之後的方法修飾符 返回值類型 方法名要和父類一致,所以我們可以省略要重寫的方法的修飾符 返回值類型這些內容。
Lambda表達式是匿名內部類的簡化寫法
public class Demo02Inner {
public static void main(String[] args) {
//創建Runnable接口的實現類對象
MyTask myTask = new MyTask();
new Thread(myTask).start();
//使用匿名內部類實現
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "執行了");
}
}).start();
//使用Lambda表達式完成多線程
new Thread(() -> {
System.out.println(Thread.currentThread().getName() + "執行了");
}).start();
}
public static void main(String[] args) {
//簡化代碼
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"新的線程創建了");
}
}).start();
//使用Lambda方式實現多線程
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"新的線程創建了");
}
).start();
}
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。