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

Java ()->;的含义是什么;System.out.println(“完成”)?,java,concurrency,lambda,java-8,Java,Concurrency,Lambda,Java 8,在link中,有一个代码如下所示:- exec.schedule( ()-> System.out.println("done"), 1, TimeUnit.SECONDS ); ()->的含义是什么 我签入了eclipse,它不允许。但是线程编写器的意图是什么呢?这是JDK8的语法 它与 这是的Java8语法 ScheduledThreadPoolExecutor#exec(..)方法需要一个Runnable参数Runnable是一个函数接口,因为它只包含一个abst

在link中,有一个代码如下所示:-

exec.schedule( ()-> System.out.println("done"),
         1, TimeUnit.SECONDS );
()->的含义是什么

我签入了eclipse,它不允许。但是线程编写器的意图是什么呢?

这是JDK8的语法

它与


这是的Java8语法

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


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

这是Java8
Runnable#run()
不接受任何参数。不寒而栗。如何让Java代码在12个简单的步骤中变得不可读…@Gray啊,来吧。玩上一天,你会觉得舒服的。哦,我知道我会觉得舒服@SotiriosDelimanolis。我只是觉得节省字符会降低语言的可读性。这是一个可爱的语言特性,但我不确定它是否能提高代码的可维护性。@Gray我还认为,如果语言更具表现力,它会更好,这对可维护性没有多大帮助。然而,我不认为他们制造兰博达就是为了这个。
exec.schedule(new Runnable() { 
    public void run() {
        System.out.println("done");
    }
}, 1, TimeUnit.SECONDS);