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

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