package com.daxing.lambda;
//推导lambda表达式
// 前提,接口是函数式接口,任何接口,如果只包含唯一一个抽象方法,那么这个接口就是函数式接口
public class TestLambda1 {
// 方法二:静态内部类
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println(" i like lambda 2");
}
}
public static void main(String[] args) {
//方法一,new一个接口的实现类
ILike like = new Like();// 或Like like = new Like() 也可以
like.lambda();
// 方法二:静态内部类
like = new Like2();//或 Like2 like2=new Like();like2.lambda()
like.lambda();
// 方法三:局部内部类
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println(" i like lambda 3");
}
}
Like3 like3 = new Like3();
like3.lambda();
//方法四:匿名内部类,没有类的名称,必须借助接口或者父类
ILike ilike=new ILike(){
@Override
public void lambda(){
System.out.println(" i like lambda 4");
}
};
ilike.lambda();
// 方法5:用lambda简化代码,jdk8之后出现
// 避免内部类定义过多,可以让代码看起来简洁
ILike i=()->{
System.out.println(" i like lambda 5");
};
i.lambda();
}
}
// 定义一个函数式接口
interface ILike{
void lambda();
}
// 接口实现类
class Like implements ILike{
@Override
public void lambda() {
System.out.println(" i like lambda1");
}
}