我想升级此代码以使用 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));
关于java - 将具有 Runnable 的处理程序升级为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230211/