lambda函数的演化
本质属于函数式编程,目的是简化编程,减少模版代码
目的
避免匿名内部类定义过多
必要条件 函数式接口
只包含一个抽象方法的接口称之为函数式接口。
简化过程
1.最开始的实现,定义一个People接口,定义一个实现类PeopleImpl
public interface People {
//接口中的方法定义,加不加都相当于public abstract
void love();
}
2.静态内部类:将PeopleImpl实现类放到类内部。
public class Main {
public static void main(String[] args) {
new PeopleImp().love();
}
public class PeopleImpl implements People{
@Override
public void love() {
System.out.println("people 2 love");
}
}
}
3.局部内部类:将PeopleImpl实现类放到使用的代码块处。
public class Main {
public static void main(String[] args) {
class PeopleImpl3 implements People {
@Override
public void love() {
System.out.println("局部内部类 people 3 love");
}
};
new PeopleImpl3().love();
}
}
4.匿名内部类:直接new 接口或者父类,重写相关方法。
public class Main {
public static void main(String[] args) {
new People() {
@Override
public void love() {
System.out.println("匿名内部类:people 4 love");
}
}.love();
}
}
5.lambda表达式
People people = ()->System.out.println("lambda:people 5 love");
people.love();
网友评论