介绍
lambda 表达式 是 java8 最重要的特性之一
lambda 表达式,并不是 java 特有的功能,python、JavaScript、scala 等开发语言,在早前就已经支持
lambda 表达式是简化代码的,也正是因为过度简化代码,导致可读性较差。
对于 java来说,不用 lambda 表达式,用传统写法,完全可行
应用场景 - 函数式接口
定义 接口,该接口 有且只有一个抽象方法,那么该接口称之为 函数式接口
编写其实现类时,就可以用 lambda 表达式
案例
定义 IMath 接口
定义接口,如下:
public interface IMath {
//运算
int operation(int a, int b);
}
提示: 因为 有且只有一个抽象方法,所以是 函数式接口
传统匿名类方式
// 创建匿名类对象
IMath math = new IMath() {
@Override
public int operation(int a, int b) {
return a+b;
}
};
int res = math.operation(1,2);
System.out.println(res);
lambda表达式
因为是 函数式接口,所以可以用 lambda 表达式:
// lambda 表达式,保留 形参和实现,中间由 -> 分割
IMath math = (int a, int b) -> {
return a+b;
};
int res = math.operation(2,2);
System.out.println(res);
总结
使用 lambda 表达式,不关心 接口名,方法名,参数名,只关注 参数类型,参数个数,返回值