在代码中有以下行:schedulerFuture = taskScheduler.schedule(() -> { }, this);我想知道 lambda() -> {}在该代码中的含义。我需要在不使用 lambda 的情况下编写它。
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
它的定义Runnable为空run。这的匿名类表示将是:
new Runnable() {
@Override public void run() {
// could have done something here
}
}
慕沐林林
TA贡献2016条经验 获得超9个赞
Lamda 表达式是一个匿名函数,它允许您将方法作为参数或简单地传递,这是一种帮助您删除大量样板代码的机制。它们没有访问修饰符(私有、公共或受保护),没有返回类型声明,也没有名称。
让我们来看看这个例子。
(int a, int b) -> {return a > b}
在您的情况下,您可以执行以下操作:
schedulerFuture = taskScheduler.schedule(new Runnable() {
@Override
public void run() {
// task details
}
}, this);
明月笑刀无情
TA贡献1828条经验 获得超4个赞
对于 lambda:
左边是参数,你拿什么。封闭在()
全部的参数该功能只
->
表示它是一个函数,它接受左边的内容并将其传递给右边进行处理
右侧是主体 - lambda 的作用。包含{}
此函数所做的一切
弄清楚之后,您只需要知道该构造传递了一个匹配类的实例(看看schedule()
调用中预期的参数类型是什么),它是唯一与我们刚刚分析的 lambda 表达式完全相同的方法。
添加回答
举报
0/150
提交
取消