Lambda表达式
1、Lambda表达式是JDK8开始后的一种新语法形式。
2、作用:简化匿名内部类的代码写法。
Lambda的简化格式
(匿名内部类被重写方法的形参列表)->{
被重写方法的方法体代码。
}
注:->是语法形式,无实际含义。
注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式。
什么是函数式接口?
1、首先必须是接口,其次接口中有且仅有一个抽象方法的形式
2、通常我们会在接口上加一个@FunctionalInterface注解,标记该接口必须满足函数式接口。
体验Lambda表达式
public class LambdaDemo1{
public static void main(String[] args) {
goSwimming(new Swimming() {
@Override
public void swim() {
System.out.println("铁子,我们去游泳把~");
}
}
}
public static void goSwimming(Swimming swimming) {
swimming.swim();
}
}
public class LambdaDemo1 {
public static void main(String[] args) {
goSwimming( () -> {
System.out.println("铁子,我们去游泳把~")
} );
}
public static void goSwimming(Swimming swimming) {
swimming.swim();
}
}
代码更少了,关注点更加明确了
总结
1、Lambda表达式的基本作用?
简化函数式接口的匿名内部类的写法。
2、Lambda有什么使用前提?
必须是接口的匿名内部类,接口中只能由一个抽象方法
3、Lambda的好处?
Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,它可以写出更简洁,更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到了提升。
Lambda表达式的省略写法(进一步在Lambda表达式的基础上继续简化)
1、参数类型可以省略不写
2、如果只有一个参数,参数类型可以省略,同时()也可以省略。
3、如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不屑,同时要省略分号!
4、如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不屑。此时,如果此行代码是return语句,必须省略return不写,同时也必须省略","不写