lambda表达式是把一块代码赋给一个Java变量,是一个是一个匿名类,实现一个接口的匿名内部类。
举例
public interface Param {
void put();
}
public class LambdaTest {
public static void method(Param param) {
System.out.println("this is method");
param.put();
}
}
public class Test1 {
public static void main(String[] args) {
Param param = () -> System.out.println("helloworld");
}
}
没有输出结果
public class Test2 {
public static void main(String[] args) {
LambdaTest.method(() -> System.out.println("helloworld"));
}
}
输出结果
this is method
helloworld
说明:
案例中lambda表达式实现了Param接口,但是它没有名字。
理解
public void fun 可以省略,加上->符号
Param接口是需要被实现的接口,我们称为函数式接口。为了避免后来人在这个接口中增加函数,我们可以加一个声明@FunctionalInterface
@FunctionalInterface
public interface Param {
void put();
}
作用:使得代码更加简洁