• Lambda表达式。


    函数式编程思想:

    面向对象思想:做一件事,先找能解决这件事的对象,然后调用该对象相应方法。

    面向过程思想:只要能获取到结果,怎么做的不重要,重视结果,不重视过程。

    冗余的代码:

     public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("新线程:"+
                Thread.currentThread().getName());
            }
        }).start();
        }

    对于Runnable的匿名内部类用法可以分析出:

     0、Thread类需要Runnable接口作为参数,其中run()为核心代码。

    1、为了指定run()方法体,就必须使用Runnable接口的实现类。

    2、为了简化代码,可以用匿名内部类,但run()的方法名称,参数,返回值等也必须再写一遍

    3、而实际上,只有run()方法体才是关键所在。

    编程思想转化:做什么,而不是怎么做。

    其实我们并不希望创建一个匿名内部类对象,只是不得不创建,我们真正希望做的事是:将run方法体的代码传给Thread类。

    Lambda表达式:

    JDK 1.8 新特性。

    格式: 0、一些参数  1、一个箭头 2、一段代码。

    (参数列表)->{ 重写方法的代码};

    参数列表: 抽象方法的参数列表,有就写,没有就空着。

    ->: 传递,把参数传递给方法体。

    {}: 重写抽象方法的方法体。

    public static void main(String[] args) {
            new Thread(()->{
                System.out.println("创建新线程:"+Thread.currentThread().getName());
    
            }).start();
        }

    简化lambda表达式:

    lambda表达式是可推导,可省略。

    0、(参数列表):数据类型可省略。

    1、(参数列表):只有一个参数,()也可省略。

    2、{代码} :只有一行,无论是否有返回值,{} ,return,分号 都可省略(要省略{},return

          和分号必须一起省略。

    lambda的使用前提:

    0、使用Lambda必须有接口,且要求接口只有一个抽象方法。

    1、使用Lambda必须具有上下文推断,方法的参数或局部变量类型必须为Lambda对应的接口类型

    有且只有一个抽象方法的接口  称为 【 函数式接口 】。

  • 相关阅读:
    Python Day14
    Python Day13
    Python Day12
    Python Day11
    Python Day10
    Python Day9
    Python Day8
    Python Day7
    Python Day6
    Python Day5
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/10834076.html
Copyright © 2020-2023  润新知