Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Runnable to lambda表达式升级处理程序_Java_Android_Lambda_Java 8 - Fatal编程技术网

Java 使用Runnable to 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

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

但这并不是用Java8在Android Studio中编译的。我收到错误消息“return type required”和另外两条错误消息。可能是一个不希望出现的错误消息。但是编译了以下代码:
handler2.postDelayed(()->{missileX=ufoX;resetRecent();waitForUfoTimer=false;},随机化(20000,18000)现在它可以编译了。我一定有一些垃圾角色介于两者之间。