也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道lambda是什么 类型
。一个函数不能只是自由浮动的,它总是需要与一个类或一个类的实例相关联。
Runnable r = () -> { System.out.println("Hello world!");};r.run();但是: 您可以将lambda转换为
Runnable类型,并向编译器提示
@FunctionalInterface您要实现的类型:
((Runnable)() -> { System.out.println("Hello world!");}).run();或不带花括号,使其成为一线式:
((Runnable)() -> System.out.println("Hello world!")).run();我想那差不多就到了!



