Lambda表达式
- 避免匿名内部类定义过多
- 其实质属于函数式编程的感念
函数式接口
任何接口只包含唯一一个抽象方法,那么它就是函数式接口
对于函数式接口,我们可以通过lambda表达式来创建该接口的对象
public interface ILike{
void lambda();
}
实例
public class TestLamda {
public static void main(String[] args) {
ILike like = new Like();
like.lambda();
//lamda表达式
like = ()->{
System.out.println("I like lamda2");
};
like.lambda();
//当方法体中只有一行语句时,花括号也可以去掉
like = ()-> System.out.println("I like lamda3");
like.lambda();
}
}
class Like implements ILike{
@Override
public void lambda() {
System.out.println("I like lamda");
}
}
结果
总结
- lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹。
- 前提接口是函数式接口
- 多个参数也可以去掉参数类型,要去掉都去掉,必须要有括号
- 单个参数可以去掉括号和类型
让我们一起变得更强