1. 首页 » 生活常识

Java编程基础教程:掌握文件读取与数据处理核心技巧

Java第72讲——Lambda表达式入门

1、戏说Lambda

Lambda表达式,是Java8引入的新特性。

当我们第一次看到Lambda这个名字,感觉特别生疏,但是当我们尝试把这个单词念出来的时候,却又发现很熟悉。

对Lambda读音熟悉是很正常的,因为它就是希腊字母λ。看到这个字母,大家恍然大悟,因为物理中波长就是用λ表示的,波速v = 波长λ × 频率f 是大家耳熟能详的公式。

不过,在Java语言中,Lambda表达式和波长无关,Lambda表达式表示匿名函数,计算机专业术语叫闭包。

2、Lambda表达式的作用

在Java语言中,提供了接口的概念,通过接口降低了调用者和被调用者的耦合关系。

其中有一类接口,其实现类往往只被在某个方法调用,我们常常用匿名类来实现这种接口,例如:

(1)界面代码的事件处理类;

(2)实现Runnable接口的线程类。

Java第72讲——Lambda表达式入门

而这些匿名类,大多数只需要实现一个方法。

对于只实现一个方法的匿名类,我们可以使用Lambda表达式,来简化代码,让代码更清晰。

下面我们用匿名类和Lambda表达式分别实现单方法接口。

3、通过匿名类实现接口

这是一个通过匿名类实现接口的例子:

package com.flying;

interface MyInterface{
    public void printMessage(String theMessage);
}

public class MyTry {
    public static void callPrinter(MyInterface myInterface, String message){
        myInterface.printMessage(message);
    }
  
    public static void main(String[] args){
        callPrinter(new MyInterface() {
            @Override
            public void printMessage(String theMessage) {
                System.out.println("This is the message: " + theMessage);
            }
        }, "fine");
    }
    
}

这种程序大家比较熟悉,这是程序运行的结果:

Java第72讲——Lambda表达式入门

4、通过Lambda表达式实现接口

我们可以通过Lambda表达式,对上面的程序进行改造:

package com.flying;

interface MyInterface{
    public void printMessage(String theMessage);
}

public class MyTry {
    public static void callPrinter(MyInterface myInterface, String message){
        myInterface.printMessage(message);
    }
  
    public static void main(String[] args){
        callPrinter((String theMessage)->System.out.println("This is the message: " + theMessage), "fine");
    }
}

程序的运行结果和上面一模一样。

5、小结

通过上面的Lambda表达式,可以看到,我们可以把Java代码当成数据一样传递给调用的方法,用起来非常方便,当然,这是Java的语法糖。

Lambda表达式很有用,尤其在线程和并行运算场景中。后面有空的时候,继续写一两篇文章,和大家深入探讨。

声明:本文由"麦兜"发布,不代表"破站"立场,转载联系作者并注明出处:https://www.848586.cn/90155.html