Lambda表达式

1.函数式编程思想

1.面向对象强调:万物皆对象,我们做任何事情都要通过对象

2.函数式编程思想强调:尽量忽略面向对象的复杂语法,强调做什么,而不是通过什么去做

所以,我们先来完成一个简单的案例,感受一下Lambda表达式是如何的

2.案例引入

1.需求:在多线程场景下,在控制台输出:多线程启动啦

思路:1.创建自定义多线程类实现Runnble接口,创建对象启动

           2.优化使用匿名内部类的方式来完成

           3.使用Lambda表达式来完成

package com.chang.datasupply.controller;

/**
 * @Author chang
 * @Date 2024/1/18 10:21
 * @Version 1.0
 * @注释 需求:在多线程场景下,在控制台输出:多线程程序启动啦
 */
public class JavaTest {

    public static void main(String[] args) {
        // 方法一
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
        //方法2
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("多线程启动啦!");
            }
        }).start();
        //方法3
        new Thread(() -> System.out.println("多线程启动啦!!!!")).start();
    }
}

class MyRunnable implements Runnable {

    @Override
    public void run() {
        System.out.println("多线程程序启动啦");
    }
}

3.Lamdba表达式的标准格式

我们先来分析一下匿名内部类方式编写代码的格式;

1.方法参数列表处的参数为空,说明本方法执行时不需要传参

2.方法的返回值类型为void,说明个方法的执行并没有返回结果

3.方法体中的内容才是我们具体要做的业务

我们再来分析一下Lamdba表达式方法编写的代码格式

1.()里没有内容,我们可以把他看作是方法执行时不需要传参数,参数为空

2. ->用箭头表示我们即将要做的事,也就是具体的业务

3. {}我们可以把他看做是一个代码块,代表了之前我们在方法体中需要写的业务内容

Lambda表达式_第1张图片

总结;使用Lamdba表达式的标准格式为:(方法的形式参数) -> {方法体}

1):如果有多个参数,参数之间用逗号分隔,如果没有参数,小括号里面为空

2):->是一个固定的标准写法,使用的符号是英文的,代表我们指向要操作的具体动作

3):{}里面是我们具体要完成的业务,也是我们的方法体

注意Lambda表达式的前提:接口+接口中有且仅有一个抽象方法

你可能感兴趣的:(java,开发语言)