002 lambda表达式

一 .概述

  在前面我们提出了lambda的本质,但是还有另外一个问题需要解释,就是lambda表达式的类型.


 二 .lambda表达式的类型

  首先我们看一下下面的例子:

static interface Inner{
        void test();
    }
    
    @Test
    public void test4() {
        Runnable run = () -> {} ;
        Inner inner = () ->{};
    }

看到上面的代码,我们发现了一个问题,相同的lambda表达式却可以成为不同的类型,这很不可思议.

lambda表达式的类型匹配任何一个入参和出参相同的类型.

也就是说,在函数式编程之中,我们关系的仅仅只是入参和出参的不同.


 三 .lambda表达式的语法

  () -> {}

上面就是lambda表达式的语法,在很多情况下我们可以省略一部分,但是在这里我们不去说这个.

上面的表达式很明确,就是一个入参和出参的描述,这很符合我们对函数式编程的理解.


 四 .内置的函数式接口

  我们发现我们使用lambda表达式的时候,仅仅关心入参和出参,如果一致,我们都会认为是一种事物.

因此,jdk为了方便我们的使用,编写了一些我们常用的函数式接口:

  

 

posted @ 2018-08-04 23:21  最爱五仁月饼  阅读(161)  评论(0编辑  收藏  举报