Java编程基础教程:掌握文件读取与数据处理核心技巧
作者:麦兜 更新时间:2023-03-26 10:33:02 阅读 303
1、戏说Lambda
Lambda表达式,是Java8引入的新特性。
当我们第一次看到Lambda这个名字,感觉特别生疏,但是当我们尝试把这个单词念出来的时候,却又发现很熟悉。
对Lambda读音熟悉是很正常的,因为它就是希腊字母λ。看到这个字母,大家恍然大悟,因为物理中波长就是用λ表示的,波速v = 波长λ × 频率f 是大家耳熟能详的公式。
不过,在Java语言中,Lambda表达式和波长无关,Lambda表达式表示匿名函数,计算机专业术语叫闭包。
2、Lambda表达式的作用
在Java语言中,提供了接口的概念,通过接口降低了调用者和被调用者的耦合关系。
其中有一类接口,其实现类往往只被在某个方法调用,我们常常用匿名类来实现这种接口,例如:
(1)界面代码的事件处理类;
(2)实现Runnable接口的线程类。
而这些匿名类,大多数只需要实现一个方法。
对于只实现一个方法的匿名类,我们可以使用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");
}
}这种程序大家比较熟悉,这是程序运行的结果:
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
