Java中Lambda表达式的基本格式及使用
Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更简洁的 Java 代码,极大地优化代码结构。
格式:() -> {}
():匹配要重写的抽象方法的参数列表
->:lambda符号,具有上下文推导的作用
{}:匹配要重写的抽象方法和方法体
Lambda 表达式可以对某些接口进行简单的实现,Lambda 规定接口中只能有一个必须被重写的抽象方法的接口,即函数式接口,使用注释**@FunctionalInterface**即可强制检测该接口是否为函数式接口。
接下来介绍lambda表达式的使用:
@FunctionalInterface
interface Num {
void toStr(int a);
}
public class Lambda {
//匿名内部类
Num num = new Num() {
@Override
public void toStr(int a) {
System.out.println("000");
}
};
//lambda表达式
Num num1 = (a) -> {
System.out.println("111");
};
}
lambda方法体中如果方法体语句只有一句,方法体前后的{}可省略:
Num num2 = (a) -> System.out.println("222");
lambda表达式如果只有一个参数,参数前后的()可以省略:
Num num3 = a -> System.out.println("333");
如果方法体语句只有一句,并且还是return语句,那么方法体前后的{}和return关键字均可省略:
@FunctionalInterface
interface Run {
String run(int b);
}
public class Lambda {
Run run = b -> {return "溜了溜了";};
Run run1 = b -> "溜了溜了";
}