lambda表达式

142 阅读1分钟
  1. 适用场合:对于函数式接口,我们可以通过lambda表达式来表示
    • 函数式接口:一个接口里面只有一个方法
  2. 好处:
    • 避免匿名内部类定义过多
    • 可以让你的代码看起来很简洁
    • 去掉了一堆没有意义的代码,只留下核心的逻辑。
  3. 推导过程:

package com.Thread;

public class LambdaTest1 {

//3.静态内部类
static class Love1 implements ILove{
    @Override
    public void lambda() {
        System.out.println("i love you1");
    }
}

public static void main(String[] args) {

    //2.实现类的输出
    Love love = new Love();
    love.lambda();

    //3.静态内部类的输出
    Love1 love1 = new Love1();
    love1.lambda();

    //3.局部内部类
    class Love2 implements ILove{
        @Override
        public void lambda() {
            System.out.println("i love you2");
        }
    }
    //3.局部内部类的输出
    Love2 love2 = new Love2();
    love2.lambda();

    //4.匿名内部类:没有类的名称,必须借助接口或者父类
    ILove love3 = new ILove() {
        @Override
        public void lambda() {
            System.out.println("i love you3");
        }
    };
    //4.匿名内部类的输出
    love3.lambda();

    //lambda表达式
    ILove love4 = ()->{
            System.out.println("i love you4");
    };
    love4.lambda();

}

}

//1.定义函数式接口  函数式接口:接口里面只有一个方法
interface ILove{
    void lambda();
}
//2.实现类
class Love implements ILove{
    @Override
    public void lambda() {
        System.out.println("i love you");
    }
}```
4. 总结:
   - lambda表达式只能有一行代码的情况下才能简化为一行,如果有多行,那么就用代码块包裹
   - 前提是接口为函数式接口
   - 多个参数也可以去掉参数类型,要去掉就全去掉,要加括号。