- Lamda表达式作用:
* 避免匿名内部类定义过多
* 可以让代码看起来更简洁
* 去掉了一些没有意义的代码,只留下核心的逻辑 - 创建函数式接口ILike 以及实例化
函数式接口定义:任何接口,只包含一个抽象方法,那么就是一个函数式接口
Lambda表达式前提是函数式接口//1.创建函数式接口 interface ILove{ void love(int a); } //2.实现类 class Love implements ILove{ @Override public void love(int a){ System.out.println("I love you !!"); } } //实例化 public class TestLambda{ //3.静态内部类 stattic class Love implements ILove{ @Override public void love(int a){ System.out.println("I love you !"); } } public static void main(String[] args){ //静态内部类的实例化 //父类引用指向子类 ILove love = new Love(); //调用重写的方法love() love.love(2); //4.局部内部类 class Love implements ILove{ //重写love()方法 @Override public void love(int a){ System.out.println("I love you !"+a); } } //实例化局部内部类 //父类引用指向子类 ILove love1 = new Love(); //调用love方法 love1.love(2); //通过lamda实现接口 ILove love2 = new ILove(){ //重写love方法 @Override public void love(int a){ System.out.println("I love you!"); } } //lambda表达式简化 ILove love3 = (int a)->{ System.out.println("I love you !"+a); }; //调用love方法 love3.love(520); //可以去掉参数类型 ILove love4 = (a)->{ System.out.println("I love you !"+a); }; love4.love(520); //简化括号 ILove love5 = null; love5 = a->{ System.out.println("I love you !"+a); }; love5.love(520); //多个参数去掉参数类型 ILove love6 = (a,b){ System.out.println("I love you !"); }; //去掉花括号 love = a-> System.out.println("I love you --->"+a); love.love(520); } }
}