作者peter98 (新兵)
看板java
標題[問題] lambda + Runnable
時間Mon Dec 31 02:25:22 2018
最近在寫java lambda expression
對於thread runnable跟lambda搭配的用法覺得有個問題
new Thread(
() -> {
System.out.println("My Runnable");
}
).start();
像上面這個寫法
為什麼compiler有辦法知道這個expression最終要換成
new Runnable() {
@Override
public void run() {
System.out.println("My Runnable");
}
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 108.5.129.170
※ 文章網址: https://www.ptt.cc/bbs/java/M.1546194324.A.4CC.html
※ 編輯: peter98 (108.5.129.170), 12/31/2018 02:25:55
→ ssccg: Thread符合 void ()這個method的參數和回傳值的Functional 01/02 10:28
→ ssccg: Interface的就只有Runnable,如果有別的可能而compiler無法 01/02 10:29
→ ssccg: 判斷就會報錯了 01/02 10:29
→ y3k: 有一個名詞叫functional interface 可以去查看看 01/05 15:26
→ y3k: 還有default function 這是我在官方文件查到的 01/05 15:32
→ ntuarthur: compiler幫你做inference阿 01/13 16:21