Lamda表达式
1.入 希腊字母表中排序第十一位的字母,英语名称为Lambda 2.避免匿名内部类定义过多 3.其实质属于函数式编程的概念

一、为什么要使用lambda表达式?:
1.避免匿名内部类定义过多
2.可以让你的代码看起来很简洁
3.去掉了一堆没有意义的代码,只留下核心的逻辑。
二、函数式接口的定义:
1.任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。

2.对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
列一:
public class TestLambda1 {//3.静态内部类static class Like2 implements ILike{@Overridepublic void lambda() {System.out.println(" i like lambda2");}}public static void main(String[] args) {ILike like = new Like();like.lambda();like = new Like2();like.lambda();//4.局部内部类class Like3 implements ILike{@Overridepublic void lambda() {System.out.println(" i like lambda3");}}like = new Like3();like.lambda();//匿名内部类:没有类的名称,必须借助接口或者父类like = new ILike() {@Overridepublic void lambda() {System.out.println(" i like lambda4");}};like.lambda();//6.lambda简化like=() ->{System.out.println(" i like lambda5");};like.lambda();}}
//1.定义一个函数式接口
interface ILike{void lambda();
}//2.实现类
class Like implements ILike{@Overridepublic void lambda() {System.out.println(" i like lambda");}
}
列二:
public class TestLambda2 {public static void main(String[] args) {Ilove love = null;/* //1.lambda简化Ilove love =(int a) -> {System.out.println("i love you" + a);};//1.简化1:参数类型love =(a) -> {System.out.println("i love you" + a);};//2.简化2:简化括号love =a -> {System.out.println("i love you" + a);};*///3.简化3:简化花括号love = a -> System.out.println("i love you" + a);love.love(2);}
}interface Ilove{void love(int a);
}简化总结:
1.lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹
2.多个参数也可以去掉参数类型,要去掉就都去掉,要加上括号
