Lambda表达式(JDK8后出现)
为什么要使用Lambda表达式
避免匿名内部类定义过多
可以让你的代码看起来很简洁
去掉了一堆没有意义的代码,只留下核心的逻辑
- lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹。
- 前提是接口为函数式接口
- 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
package com.tt.lambda;
public class TestLambda01 {
//3.静态内部类
static class Love2 implements Ilove{
@Override
public void love() {
System.out.println("I_Love_You_2");
}
}
public static void main(String[] args) {
Ilove love = new Love();
love.love();
love = new Love2();
love.love();
//4.局部内部类
class Love3 implements Ilove{
@Override
public void love() {
System.out.println("I_Love_You_3");
}
}
love = new Love3();
love.love();
//5.匿名内部类,没有类的名称,必须借助接口或者父类
love = new Ilove() {
@Override
public void love() {
System.out.println("I_Love_You_4");
}
};
love.love();
//6.用lambda简化
love = () -> {
System.out.println("I_Love_You_5");
};
love.love();
}
}
//1.定义一个函数式接口(即只有一个方法)
interface Ilove{
void love();
}
//2.实现类
class Love implements Ilove{
@Override
public void love() {
System.out.println("I_Love_You_1");
}
}