Java 8 入门新特性 - Lambda 表达式

作为 Java 8 最重要的更新之一,Lambda 表达式终于在JSR 335 中尘埃落定。

我们从一个最简单的例子入门,逐渐开始使用 Lambda 表达式。

package com.imxylz.java8.lambda;

/**
 * @author adyliu (imxylz@gmail.com)
 * @since 2013-10-16
 */
public class FirstLambdaDemo {


    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            System.out.println("Lambda is coming...");
        });
        t.start();
        t.join();
    }
}

这段代码中真正有意义的代码只有如下片段:

Thread t = new Thread(() -> {
    System.out.println("Lambda is coming...");
});

类似于匿名类的实现:

Thread t = new Thread(new Runnable() {
    public void run() {
        System.out.println("Hello world!");
    }
});

看起来没多大的用途。事实上 Lambda 表达式出现的目的是为了减少代码体积,让开发者更聚焦于业务逻辑而不是代码形式。 受限于面向对象的特性,Java 一直无法直接支持函数式编程,因此这几年在 jvm 之上的函数式语言才会蓬勃发展(Scala,Groovy 等)。