java - Upgrading a Handler with Runnable to lambda expression
问题描述
I want to upgrade this code to use a lambda expression:
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
}, randomize(20000, 18000));
I try it this way but it doesn't compile:
Handler handler2 = new Handler(Looper.getMainLooper());
handler2.postDelayed(Runnable task = () -> {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
}, randomize(20000, 18000));
Where are some instructions so that I can learn how to do it? It is preposterous that I must guess the syntax.
解决方案
您不必声明要分配给 lambda 的变量。这就够了 :
Handler handler2 = new Handler(Looper.getMainLooper());
handler2.postDelayed(() -> {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
, randomize(20000, 18000));
推荐阅读
- vba - 使用 VBA 打开时获取 .xlsm 文件以不执行代码
- c# - 如何管理同名构造函数
- react-native - React Native - 安卓数据网格
- java - Java 7 运行时关闭 Google App Engine
- java - 未能懒惰地初始化集合和 vaadin
- arrays - 如何比较 2 个集合并在 mongodb 中获取匹配的字段数据?
- javascript - 为从 ajax 响应填充的动态选项选择的选项
- git - git push 停止写入对象 99%
- c++ - 为什么会出现运行时错误:向量擦除迭代器超出范围
- c# - 使用 linq 查找具有给定纬度和经度的最近数据