() - > System.out.println(“完成”)的含义是什么?

时间:2014-02-05 19:38:00

标签: java concurrency lambda java-8

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

exec.schedule( ()-> System.out.println("done"),
         1, TimeUnit.SECONDS );

() - >的含义是什么? ?

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

2 个答案:

答案 0 :(得分:10)

这是JDK8的Lambda语法。

非常相似(但不完全相同)
exec.schedule(new Runnable() { 
    public void run() {
        System.out.println("done");
    }
}, 1, TimeUnit.SECONDS);

答案 1 :(得分:7)

这是Lambda Expressions的Java 8语法。

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

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