() - > System.out.println("done")是什么意思?

a3.*_*ity 5 java concurrency lambda java-8

Concurrency Interest链接中,有一个代码如下: -

exec.schedule( ()-> System.out.println("done"),
         1, TimeUnit.SECONDS );
Run Code Online (Sandbox Code Playgroud)

() - >是什么意思?

我检查了eclipse,它不允许.但线程编写者的意图是什么?

Ser*_*nev 10

这是来自JDK8的Lambda语法.

它非常相似(但不完全相同)

exec.schedule(new Runnable() { 
    public void run() {
        System.out.println("done");
    }
}, 1, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)


Sot*_*lis 7

这是Lambda Expressions的Java 8语法.

ScheduledThreadPoolExecutor#exec(..)方法需要一个Runnable参数.Runnable是一个功能接口,因为它只包含一个abstract方法.因此,编译器可以推断您正在Runnable使用lambda 定义新实例.

两者之间的部分()run()方法的参数,即.没有.之后的部分->是方法的主体.