多语言展示
当前在线:1489今日阅读:27今日分享:41

Java 8如何使用Lambda表达式

为了让编写代码更加容易,Java8引入了其他语言的一些特性,比如Lambda表达式,也经常被称为闭包。本文则主要介绍如何使用Java8 新特性之Lambda表达式,通过引入Lambda表达式,我们可以轻易避开代码“高度问题”并可以提高编码效率及代码可读性。
工具/原料

JAVA 8

方法/步骤
1

Lambda表达式实质是一种实现方法的简洁表达形式,在没有用Lambda表达式之前,假如我们想定义一个Runable,如下所示:public class LambdaStudy{    public static void main(String... args)    {        Runnable r = new Runnable()        {            public void run()            {                System.out.println('Howdy, world!');            }        };        r.run();    }}

2

从下图中的代码可以注意到,为了利用Runable打印一行语句,我们写了近10行代码,实质上只有第15行代码在起作用,这样就导致了代码“高度问题”

3

通过引入Lambda表达式,我们实现上述功能只需要写如下代码:public class LambdaStudy{    public static void main(String... args)    {        Runnable r2 = () -> System.out.println('Howdy, world!');        r2.run();    }}可以注意到,通过Lambda表达式,我们的代码高度由10直接降低到了2,且代码更简洁,易理解。

4

从【步骤3】我们看到了Lambda表达式的优势,那么如何在代码中使用Lambda表达式呢,首先,我们要知道Lambda表达式的语法。

5

由于Lambda表达式拥有闭包的性质,所以可以在Lambda表达式中直接访问Lambda表达式外部的函数的局部变量(闭包特性之一)。下图中parmStr为lambda表达式内部变量,outStr为Lambda表达式外部变量

6

在使用Lambda表达式时,为了让Lambda表达式晚些执行,我们需要用函数式接口接收Lambda表达式,下图中的Consumer即为函数式接口,在Consumer的定义文件中可以看到对应的函数式接口注解@FunctionalInterface。如果不明白什么是函数式接口,可以参阅如下经验。

注意事项

如果小编所写经验帮助到了你,请帮忙给点个赞或评论支持下,您的支持是作者继续创作的动力!

推荐信息