Lamda表达式

Lamda表达式

  • λ希腊字母表中排序第十一位的字母,英文名称为Lambda
  • 避免匿名内部类定义过多
  • 其实质属于函数式编程的概念

new Thread (()->System.out.println("多线程学习。。。")).start();

  • 为什么要使用lambda表达式

    • 避免匿名内部类定义过多
    • 可以让你的代码看起来很简洁
    • 去掉了一堆没有意义的代码,只留下核心的逻辑
  • 也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为我们还没有习惯,用的多了,看习惯了,就好了。


  • 理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在。

  • 函数式接口的定义:

    • 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
    public interface Runnable{
        public abstract void run();
    }
    
    • 对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
public class TestLambda2 {


    public static void main(String[] args) {
        ILove love = null;

//        //1.lambda表达式简化
//        ILove love = (int a)-> {
//                System.out.println("I love you-->"+a);
//        };
//
//        //简化1.参数类型
//        love = (a)-> {
//            System.out.println("I love you-->"+a);
//        };

        //简化2.简化括号
//        love = a -> {
//            System.out.println("I love you-->"+a);
//        };
//
//        love.love(521);

        //简化3.去掉花括号
        love = a ->  System.out.println("I love you-->"+a);

        //总结:
            //lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹
            //前提是接口为函数式接口(只有一个方法)
            //多个参数也可以去掉参数类型,要去掉都去掉,必须加括号

        love.love(521);
    }
}

interface ILove{
    void love(int a);
}

来源:https://www.bilibili.com/video/BV1V4411p7EF?p=10

posted @ 2020-07-15 17:41  小卢传  阅读(141)  评论(0编辑  收藏  举报