上一篇我写了一个Lamdba表达式的经典例子,但是实际工作中,很多人喜欢写各种缩写,导致有的伙伴看不懂。这篇主要写下,Lamdba表达式的缩写:
首先我们常见的Lamdba表达式的结构如下:
( 参数列表 ) -> { 方法体 }
那么可以省略的场景总结如下:
①参数列表有且只有一个参数,则可以省略小括号
②参数列表的数据类型可以省略,随时都可以省略
③当方法体有且只有一条语句的时候,可以省略大括号,如果省略了大括号,则return语句后分号也需要省略。
下面针对上面的三个场景给一个例子:
@FunctionalInterface
interface B {
public abstract void test(int b);
}
public class LamdbaLearn04 {
public static void main(String[] args) {
testB((int x)->{
System.out.println("第一种省略场景");
});
//参数列表有且只有一个参数,则可以省略小括号(所以去掉了int x的小括号)
//参数列表的数据类型可以省略,随时都可以省略(所以去掉了 int 类型)
//当方法体有且只有一条语句的时候,可以省略大括号,如果省略了大括号,则return语句后分号也需要省略。
testB(x-> System.out.println("第一种省略场景"));
}
public static void testB(B b){
}
}
所以最终,我们将
testB((int x)->{
System.out.println("第一种省略场景");
});
优化成了:
testB(x-> System.out.println("第一种省略场景"));