看完这篇文章,别说自己不会用Lambda表达式了!

作者:微信小助手

发布时间:2019-06-26T18:39:34

标题显得有点标题党的味道?看了文章内容之后就知道是干货了!这篇文章用来入门或者复习Java的Lambda表达式都是非常不错的。我在文章补充了少部分知识点,比如Java 开发使用手册对Arrays.asList()方法使用的介绍、IDEA在Lambda表达式这块的智能提示......

本文转载自:https://dwz.cn/5H0shOuC  作者 :吴仙杰

相关文章推荐:Java 8 新特性最佳指南

1. 引言

在 Java 8 以前,若我们想要把某些功能传递给某些方法,总要去写匿名类。以前注册事件监听器的写法与下面的示例代码就很像:

manager.addScheduleListener(new ScheduleListener() {
    @Override
    public void onSchedule(ScheduleEvent e) {        
        // Event listener implementation goes here...
    }
});

这里我们添加了一些自定义代码到 Schedule 监听器中,需要先定义匿名内部类,然后传递一些功能到 onSchedule 方法中。

正是 Java 在作为参数传递普通方法或功能的限制,Java 8 增加了一个全新语言级别的功能,称为 Lambda 表达式

2. 为什么 Java 需要 Lambda 表达式

Java 是面向对象语言,除了原始数据类型之处,Java 中的所有内容都是一个对象。而在函数式语言中,我们只需要给函数分配变量,并将这个函数作为参数传递给其它函数就可实现特定的功能。JavaScript 就是功能编程语言的典范(闭包)。

Lambda 表达式的加入,使得 Java 拥有了函数式编程的能力。在其它语言中,Lambda 表达式的类型是一个函数;但在 Java 中,Lambda 表达式被表示为对象,因此它们必须绑定到被称为功能接口的特�