繁体   English   中英

使用Runnable将处理程序升级为Lambda表达式

[英]Upgrading a Handler with Runnable to lambda expression

我想升级此代码以使用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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM