001 lambda表达式

一 .概述

  暂时对应我来说,lambda表达式带给我的仅仅只是代码写的更少,但是阅读性却差了很多.

    没感觉好处多了多少,但是看见lambda出现的次数变多了,因此学习一下这个.


二 .演示一下lamda 

@Test
    public void test() {
        new Thread(() -> {
            for(;;)
                System.out.println("running ....");
        }) .start();
    }

现在我们展示了一下lambda表达式最初的结构,我们也没有感觉到什么特别的地方,代码确实少了一写.


三 . 函数接口

在java8之中引入了函数接口的概念,lambda使用 前提就是函数式接口.

  函数式接口: 

扫描二维码关注公众号,回复: 93465 查看本文章

    如何一个接口中只有一个抽象方法,那么这个接口就是函数式接口.

    interface lambda{
        void run();
    }

上面的一个接口就是一个函数式接口,另外在java8之中有一个声明式的注解可以标示函数式接口.

    @FunctionalInterface
    interface lambda{
        void run();
    }

上面的代码仅仅多了一个注解,这个注解的作用就是标记该接口中仅仅只能有一个抽象方法.

我们查看Runnable接口.

@FunctionalInterface
public interface Runnable {}

我们发现Runnable接口也被标记为了函数式接口了.


四 .函数式接口的使用

  上面讨论到函数式接口仅仅只能有一个抽象方法.下面我们来分析一下方法的组成.

    在接口中的抽象方法:

      返回值  方法名 (参数列表 ) 异常声明.

  在函数式接口之中,方法的名字没有什么意义了.

  现在我们需要关注的就是:

      [1] 方法的返回值

      [2]方法的参数列表

      [3] 异常声明

lambda表达式的基本结构:

  (参数1 ,参数2) -> {

    语句 ;

    return ;

  }

当然了,我们还能更加的精简代码,在这里就不去说了,都是一些特殊的情况.

    @Test
    public void test2() {
        new Thread(
                () ->System.out.println("hello!")
                ).start();;
    }

上面的代码就更加精简了,但是我们需要注意的解释阅读性的问题了.


五 . lambda表达式的使用注意点

lambda表达式已经够简单的了,我们最好写全一点,不然阅读星是在是太差了.

猜你喜欢

转载自www.cnblogs.com/trekxu/p/8974036.html