Java 使用Runnable to lambda表达式升级处理程序
我想升级此代码以使用lambda表达式:Java 使用Runnable to lambda表达式升级处理程序,java,android,lambda,java-8,Java,Android,Lambda,Java 8,我想升级此代码以使用lambda表达式: Handler handler = new Handler(Looper.getMainLooper()); handler.postDelayed(new Runnable() { @Override public void run() { missileX = ufoX; resetRecent(); waitForUfoTimer = false; } }, randomize
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));
但这并不是用Java8在Android Studio中编译的。我收到错误消息“return type required”和另外两条错误消息。可能是一个不希望出现的错误消息。但是编译了以下代码:
handler2.postDelayed(()->{missileX=ufoX;resetRecent();waitForUfoTimer=false;},随机化(20000,18000)代码>现在它可以编译了。我一定有一些垃圾角色介于两者之间。