lambda () 的含义 -> { } 在 Java 中

2022-09-01 18:42:23

我正在看下面的Stack Overflow答案:如何在运行时更改Spring的@Scheduled修复Delay

在代码中有以下行:

schedulerFuture = taskScheduler.schedule(() -> { }, this);

我想知道 lambda 在该代码中意味着什么。我需要在不使用lambdas的情况下编写它。() -> {}


答案 1

它是一个具有空定义的 Runnable。此的匿名类表示形式为:run

new Runnable() {
     @Override public void run() {
          // could have done something here
     }
}

答案 2

Lamda 表达式是一个匿名函数,允许您将方法作为参数传递,或者简单地说,这是一种帮助您删除大量样板代码的机制。它们没有访问修饰符(私有、公共或受保护)、无返回类型声明和名称。

让我们看一下这个例子。

(int a, int b) -> {return a > b}

在你的情况下,你可以做如下事情:

schedulerFuture = taskScheduler.schedule(new Runnable() {
     @Override 
     public void run() {
        // task details
     }
}, this);

推荐