java - 将具有 Runnable 的处理程序升级为 lambda 表达式

标签 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(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));

关于java - 将具有 Runnable 的处理程序升级为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230211/

相关文章:

android - Soap 启动器,maven 构建失败

android - 应用批量操作后获取id

java - 离开应用程序时,必须删除 SharedPreferences

java - 如何在 JDK 1.4 下模拟构建新对象?

Android - Firebase 调试 SHA1 证书

java8聚合对象转换器

python - 返回 iter 中 lambda 的产量

python - 如何使用 python 将流上传到 AWS s3

java - java 获取文件的实际磁盘使用情况

java - 从 GUI 应用程序确定使用的类