14.1.2 lambda表达式的语法

Java SE 8中的lambda表达式提供了一种匿名方法的表示形式。它针对函数式接口的特征,提供了一种简洁的方式来替代匿名内部类的使用。代码清单14-2与代码清单14-1功能相同,但是代码清单14-2是使用lambda表达式来实现的代码。

代码清单14-2 使用lambda表达式实现Runnable接口


new Thread(()->{System.out.println("Hello World!");}).start();


可以看到,使用lambda表达式把代码清单14-1中的5行代码缩减成1行。lambda表达式的基本形式是“(参数列表)->代码块”。lambda表达式的表示形式类似于一般的方法,由形式参数和方法体两部分组成。形式参数包含在“()”中,“->”用来分隔形式参数和方法体。方法体可以是简单的表达式,也可以是复杂的代码块。复杂的代码块需要用“{}”包围起来。代码清单14-3给出了一些lambda表达式的示例。

代码清单14-3 lambda表达式的示例


(int x, int y)->x+y

(int x)->100

()->"Hello World"

(int x)->{

int num=10;

return num*x;

}