1.避免匿名内部类定义过多
2.可以让你的代码看起来很简洁
为什么要使用
3.去掉了一堆没有意义的代码,只留下核心逻辑
函数式接口
定义:任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
package top.ltyzqhh.thread.study;
import java.sql.SQLOutput;
//推导lambda表达式
public class test_lambda1 {
//3.静态内部类
static class Like2 implements ILike{
public 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{
public void lambda() {
System.out.println("i like lambda3") ;
}
}
like =new Like3();
like.lambda();
//5.匿名内部类,没有类的名称,必须借助接口或者父类
like =new ILike() {
@Override
public 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{
public void lambda() {
System.out.println("i like lambda") ;
}
}