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 等)。