lamda表达式
为什么要使用lamda表达式
- 避免匿名内部类定义过多
- 可以让你的代码看起来更简洁
- 去掉一堆没有意义的代码,只留下核心的逻辑。
理解Functional Interface(函数式接口)是学习java8 lamda表达式的关键。
函数式接口的定义:
- 任何几口,如果只包含唯一一个抽象方法,那么它就是一个函数接口。
- 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象。
练习代码:
package www.chen.com.lamda;
/*
推导lambda表达式
*/
public class TestLambda {
//3.静态内部类
static class Love2 implements ILove{
@Override
public void lambda(int a) {
System.out.println("坚持努力学习2"+a);
}
}
public static void main(String[] args) {
//接口去new 实现类
ILove love = new Love();
love.lambda(10);
ILove love2 = new Love2();
love2.lambda(20);
//4.局部内部类
class Love3 implements ILove{
@Override
public void lambda(int a) {
System.out.println("坚持努力学习3"+a);
}
}
love = new Love3();
love.lambda(40);
//5.匿名内部类,没有类的名称,必需借助接口或者父类
love = new ILove() {
@Override
public void lambda(int a) {
System.out.println("坚持努力学习4"+a);
}
};
love.lambda(50);
//6.用lambda表达式简化
love = (int a)-> {
System.out.println("坚持努力学习5"+a);
};
love.lambda(60);
}
}
//1.定义一个函数式接口
interface ILove{
void lambda(int a);
}
//2.实现类
class Love implements ILove{
@Override
public void lambda(int a) {
System.out.println("坚持努力学习1"+a);
}
}