作者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://webptt.com/cn.aspx?n=bbs/java/M.1546194324.A.4CC.html
※ 编辑: peter98 (108.5.129.170), 12/31/2018 02:25:55
1F:→ ssccg: Thread符合 void ()这个method的参数和回传值的Functional 01/02 10:28
2F:→ ssccg: Interface的就只有Runnable,如果有别的可能而compiler无法 01/02 10:29
3F:→ ssccg: 判断就会报错了 01/02 10:29
4F:→ y3k: 有一个名词叫functional interface 可以去查看看 01/05 15:26
5F:→ y3k: 还有default function 这是我在官方文件查到的 01/05 15:32
6F:→ ntuarthur: compiler帮你做inference阿 01/13 16:21