有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Runnable to 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));

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


共 (1) 个答案

  1. # 1 楼答案

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

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