Lambda介绍
Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。
JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。
对接口的要求
虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法,因为
jdk8 中有另一个新特性:default, 被 default 修饰的方法会有默认实现,不是必须被实现的方法
使用Lambda表达式需要在接口上使用@FunctionalInterface注解,使用这个注解,如果要定义两个方法,编译时就会报下面的错误:
根据jdk8的新特性,想要在这种情况下定义多个方法,可以用下面的方法,使用default修饰需要有方法体。
@FunctionalInterface
public interface Inter1 {
void method(int a, int b);
default void method2(int a, int b) {
}
}
Lambda表达式基础语法
语法形式为 () -> {},其中 () 用来描述参数列表,{} 用来描述方法体,-> 为 lambda运算符 ,读作(goes to)。使用Lambda表达式省去了之前使用implements关键字实现接口,可以直接使用:
public static void main(String[] args) {
Inter1 inter1 = (int a, int b) -> {
System.out.println("inter1:" + "{" + a + "," + +b + "}");
};
inter1.method(1, 2);
}
以上是Lambd表达式的简单介绍、使用时需要注意的点以及其基础语法。