public class Test {
//静态内部类
static class Like2 implements Ilike {
public void lambda() {
System.out.println("hello,lambda2");
}
}
//主函数
public static void main(String[] args) {
//1、最常见实现方法
Ilike like=new Like();
like.lambda();
//2、静态内部类实现方法
like = new Like2();
like.lambda();
//3、局部内部类实现
class Like3 implements Ilike {
public void lambda() {
System.out.println("hello,lambda3");
}
}
like = new Like3();
like.lambda();
//4、局部内部类实现
like = new Ilike() {
public void lambda() {
System.out.println("hello,lambda4");
}
};
like.lambda();
//5、lambda简化
Ilike like5 = () -> {
System.out.println("hello,lambda5");
};
like5.lambda();
}
}
//实现接口
interface Ilike {
public void lambda();
}
//外部类
class Like implements Ilike {
public void lambda() {
System.out.println("hello,lambda");
}
}
结果:
hello,lambda
hello,lambda2
hello,lambda3
hello,lambda4
hello,lambda5
进程已结束,退出代码为 0
使用lambda 表达式的优点:
- 避免匿名内部类定义过多
- 可以让你的代码看起来很简洁
- 去掉了一堆没有意义的代码,只留下核心的逻辑。
注意点:
- 从java 8 开始支持lambda 表达式
- 理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在。
其他示例
多参数注意加上括号
public class lambda {
public static void main(String[] args) {
//1、lambda 表达式简化
ILove love =(int i)->{
System.out.println("love1");
};
love.love(1);
//2、参数类型简化
ILove love2 =(i)->{
System.out.println("love2");
};
love2.love(1);
//3、简化括号
ILove love3 =a->{
System.out.println("love3");
};
love3.love(1);
//4、简化括号
ILove love4 =a-> System.out.println("love4");
love4.love(1);
}
}
interface ILove{
public void love(int a);
}
love1
love2
love3
love4
进程已结束,退出代码为 0