Lamda表达式

Lamda表达式

λ希腊字母表中排序第十一位的字母,英语名称为lambda

Lambda 表达式是在 Java 8 中引入的,并且成为了 Java 8 最大的特点。它使得功能性编程变得非常便利,极大地简化了开发工作。

避免匿名内部类定义过多

其实质属于函数式编程的概念

Lambda 表达式的语法与特征

一个 Lambda 表达式具有下面这样的语法特征。它由三个部分组成:第一部分为一个括号内用逗号分隔的参数列表,参数即函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部分为方法体,可以是表达式和代码块。语法如下

(params) -> expression [表达式]

​ (params) ->statement [语句]

​ (params) ->

a-> System.out.println("i like lambda -->"+a);

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

lambda表达式推导:

  1. 定义一个函数式接口
interface ILike{
    void lambda();
}
  1. 实现类
class Like implements ILike{

    @Override
    public void lambda() {
        System.out.println("i like lambda");
}
  1. 静态内部类
static class Like2 implements ILike{

    @Override
    public void lambda() {
        System.out.println("I like lambda2");
    }
}
public static void main(String[] args) {
    ILike like=new Like();
    like.lambda();

    like=new Like2();
    like.lambda();

    //4.局部内部类
    class Like3 implements ILike{
         @Override
        public void lambda() {
            System.out.println("I like lambda3");
        }
    }

    like=new Like3();
    like.lambda();

    //5.匿名内部类,没有类的名称。必须借助接口或者父类
    like=new ILike() {
        @Override
        public void lambda() {
            System.out.println("i like lambda4");
        }
    };
    like.lambda();

    //6.用lambda简化
    like=()-> {
        System.out.println("i like lambda5");
    };
    like.lambda();

}

简化lambda表达式

//函数式接口
interface ILove{
    void love(int a);
}
//简化1.参数类型
love=(a)->{
    System.out.println("i love you"+a);
};
love.love(250);

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

//简化3.去掉{}
love=a -> System.out.println("i love you"+a);
love.love(222);

总结:

  1. lambda表达式只能有一行代码的情况下,才能简化成为一行。如果有多行,就用代码块包裹
  2. 前提是接口为函数式接口
  3. 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号()
posted @ 2022-11-29 14:31  每天前进一步  阅读(159)  评论(0)    收藏  举报