Lambda表达式
1.要想使用函数式编程有一个前提:接口必须只有一个方法。
如果接口存在两个以上的方法,则无法使用函数式编程。
如果现在某个接口就是为函数式编程而生的,在定义时只能存在一个方法,因此有一个新的注解@Functionallnterface,此注解会检查该接口中是否只存在一个抽象方法,存在两个方法及以上编译报错。
2.当方法体只有一行代码时:
(方法参数)-> 具体的方法体实现
当方法体有返回值时,单行代码的lambda表达式可以省略return语句。
3.当方法体有多行代码时:若有返回值,return语句不能省略
(方法参数)-> {
. . .
. . .
(方法体)
[return语句]
}
interface IMassage{
void add(int x, int y);
}
interface IMassage1{
int mul(int x, int y, int z);
}
public class Test4 {
public static void main(String[] args){
IMassage im = (x,y) -> System.out.println(x+y);
im.add(1,2);
IMassage1 im1 = (x,y,z) -> x*y*z;
int result = im1.mul(1,2,3);
System.out.println(result);
}
}
输出结果为:
3
6