代码之家  ›  专栏  ›  技术社区  ›  Niklas Rosencrantz

将可运行的处理程序升级为lambda表达式

  •  2
  • Niklas Rosencrantz  · 技术社区  · 6 年前

    我要升级此代码以使用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 回复  |  直到 6 年前
        1
  •  3
  •   davidxxx    6 年前

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