Lambda
-
避免匿名内部类定义过多
-
可以让你的代码看起来简洁
-
去掉了一堆没有意义的代码但留下了核心
函数式接口
-
任何接口 只包含唯一一个抽象类方法
-
对应函数接口就可以使用lambda表达式了
就简单的使用
public class TryLambda {
public static void main(String[] args) {
Calculator calculator = (a,b)-> {
return a + b;
};
Calculator calculator1=(a,b)->a+b; //传入ab 返回a+b
}
}
interface Calculator{
int add(int a,int b);
}
推导
lambda必须有父类或者有接口
-
一个接口
-
实现类
-
静态内部类
-
局部内部类
-
匿名内部类
-
lambda
//1.一个接口
interface ILike{
void lambda();
}
//2.实现类
class Like implements ILike{
public void lambda(){
System.out.println("I like lambda1");
}
}
public class TryLambda {
//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(){
public void lambda(){
System.out.println("I like lambda4");
}
};
like.lambda();
//6.用lambda简化
like = ()-> System.out.println("I like lambda5");
like.lambda();
}
}
总结:
接口类 名字 -> 方法体
必须是函数式接口(接口里就只有一个方法)