當(dāng)您編寫匿名Runnable 時(shí),例如:Thread producer = new Thread(new Runnable() { @Override public void run() { // do something }});IntelliJ 建議用以下 lambda 替換它:Thread producer = new Thread(() -> { // do something }});效果一樣好。這是如何工作的?特別是:使用的構(gòu)造函數(shù)仍然是Thread(Runnable target),但 lambda 中似乎沒有任何內(nèi)容表明它是一個(gè) Runnable。為什么@Override public void run()突然不再需要了?
1 回答

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您的匿名類只有一種方法,您可以將其實(shí)現(xiàn)為 lambda 表達(dá)式。您在這里作為 lambda 傳遞的是該run
方法的實(shí)現(xiàn)。Lambda 表達(dá)式讓您可以更緊湊地表達(dá)單一方法類的實(shí)例。
添加回答
舉報(bào)
0/150
提交
取消