Java中lambda() – > {}的含义
我正在看下面的Stack Overflow答案: 如何在运行时更改Spring的@Scheduled fixedDelay
在代码中有以下行:
schedulerFuture = taskScheduler.schedule(() -> { }, this);
我想知道lambda () -> {}
在该代码中的含义。 我需要在不使用lambdas的情况下编写它。
它是一个具有空run
定义的Runnable
。 这个的匿名类表示将是:
new Runnable() { @Override public void run() { // could have done something here } }
Lamda表达式是一个匿名函数,它允许您将方法作为参数传递,或者只是一种帮助您删除大量样板代码的机制。 它们没有访问修饰符(私有,公共或受保护),没有返回类型声明,也没有名称。
让我们来看看这个例子。
(int a, int b) -> {return a > b}
在您的情况下,您可以执行以下操作:
schedulerFuture = taskScheduler.schedule(new Runnable() { @Override public void run() { // task details } }, this);
对于lambdas:
左边是争论,你采取什么。 包含在()
是此函数所采用的所有参数
->
表示它是一个函数,它采用左边的内容并将其传递到右边进行处理
右侧是身体 – lambda的作用。 附在{}
是此function所做的一切
在你弄明白之后你只需要知道那个构造传递了一个匹配类的实例(查看schedule()
调用中的预期参数类型),它的唯一方法与lambda表达式完全相同我们只是分析。
Lambda表达式基本上表示function接口的实例。 在某种程度上,Lambda表达式将是:( lambda operator params) – > {body}
() – > System.out.println(“这意味着Lambda表达式不带任何参数”);
(p) – > System.out.println(“带有一个参数的Lambda表达式:”+ p);