将具有 Runnable 的处理程序升级到 lambda 表达式



我想升级此代码以使用 lambda 表达式:

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
}, randomize(20000, 18000));

我尝试这样做,但它无法编译:

Handler handler2 = new Handler(Looper.getMainLooper());
handler2.postDelayed(Runnable task = () -> {  
missileX = ufoX;
resetRecent();
waitForUfoTimer = false; 
}
}, randomize(20000, 18000));

在哪里有一些说明,以便我可以学习如何做?我必须猜测语法是荒谬的。

您不必声明要分配给 lambda 的变量。这就足够了:

Handler handler2 = new Handler(Looper.getMainLooper());
handler2.postDelayed(() -> {  
missileX = ufoX;
resetRecent();
waitForUfoTimer = false; 
}
, randomize(20000, 18000));

最新更新