Lambda表达式的省略模式
- 参数类型可以省略,但是有多个参数的情况下,不能只省略一个
- 如果参数有且仅有一个,那么小括号可以省略
- 如果代码块的语句只有一条,可以省略大括号和分号,甚至是return
- 代码演示:
LambdaDemo类
package Demo;
public class LambdaDemo {
public static void main(String[] args) {
useAddable((int x,int y)->{
return x+y;
});
//参数类型可以省略
useAddable((x,y)->{
return x+y;
});
//但是有多个参数的情况下,不能只省略一个
// useAddable((int x,y)->{
// return x+y;
// });
System.out.println("---------------------------------------------------------------------------------------");
useFlyable((String s)->{
System.out.println(s);
});
//参数类型可以省略
useFlyable( (s)->{
System.out.println(s);
});
//如果参数有且只有一个,那么小括号可以省略
useFlyable( s->{
System.out.println(s);
});
//如果代码块的语句只有一条,可以省略大括号和分号,如果有return,return也要省略掉
useFlyable( s->
System.out.println(s)
);
useAddable((x,y)->x+y);
//最终形态!
useAddable((x,y)->x+y);
useFlyable(s-> System.out.println(s));
}
private static void useAddable(Addable a) {
System.out.println(a.add(3,5));
}
private static void useFlyable(Flyable a) {
a.fly("我会飞");
}
}
Addable接口
package Demo;
public interface Addable {
int add(int x,int y);
}
Flyable接口
package Demo;
public interface Flyable {
void fly(String s);
}