001 lambda表达式的引入

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了001 lambda表达式的引入相关的知识,希望对你有一定的参考价值。

一 . 概述

  在java8之中,为我们引入了lambda表达式的概念,我们通过这个概念可以实现函数式编程的理念.

  本次,我们从最初的概念之中推到出lambda表达式.


 

二 .匿名内部类的演化 

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (;;)
                    System.out.println("running....");
            }
        }).start();

上面的代码表现的就是我们以前使用匿名内部类的方式,我们可以自己的观察这个这个语法的表达式,实际上我们的匿名内部类就是一个函数式参数的概念.

  本质上,我们的匿名内部类就是一个函数参数.

在java8之中,将这中复杂的表达方式进行了简化,变成了下面的方式.

new Thread(() -> {
            for (;;)
                System.out.println();
        }).start();

我们可以看到,代码进行了很多的简化.


 

三 .lambda表达式的使用条件----函数式接口

  首先我们需要声明一下函数式接口的概念:

一个接口之中,只有一个抽象的方法,那么这个接口我们就称为函数式接口.(在java8之中,在接口之中出现了静态的方法和默认的方法).

  那么,lambda的使用条件就是函数式接口,一个lambda表达式就是一个函数式参数.


 

四 . lambda表达式的语法格式

  首先我们声明一个最全的语法格式:

  (方法参数列表) -> {表达式body}.

在上面的最全的结构之中,由于一些特殊性,我们可以省略掉一下语法的格式不去写.

  本次我们不去讨论怎么最简化的写出一个lambda表达式来.


 

以上是关于001 lambda表达式的引入的主要内容,如果未能解决你的问题,请参考以下文章

Java 8 为什么会引入lambda 表达式?

Java8-01-笔记

Java8-01-笔记

Lambda表达式

IntelliJ:求值lambda表达式在调试时引发编译错误

Lambda表达式