Java8-Lambda表达式的5种形式

形式一:

这种写法没有参数,用一对圆括号表示。

Runnable noArguments = () -> System.out.println("Hello World");

形式二:

这种写法只有1个参数,可以省略括号,下面的 event 相当于 (event)

ActionListener oneArgument = event -> System.out.println("点击了按钮");
// 等同于 ↓
//ActionListener oneArgument = (event) -> System.out.println("点击了按钮");

形式三:

这种写法表示有多段代码块,适用于复杂状况。

Runnable multiStatement = () -> {
	System.out.print("Hello");
	System.out.println(" World");
};

形式四:

这种写法表示包含两个参数的方法。
注意:**下面的 functionAdd 并不是将两个数字相加的结果,而是创建了一个函数,用来计算两个数字相加的结果。**变量 functionAdd 的类型并不是两个数字相加的和,而是将两个数字相加的那行代码。

// 创建一个函数
BinaryOperator<Long> functionAdd = (x, y) -> x + y;
// 应用函数,给函数传值,得到计算结果
Long result = functionAdd.apply(1L, 2L);

形式五:

这种写法和形式四的不同之处在于,多了对参数类型的显示声明。

// 创建一个函数
BinaryOperator<Long> function = (Long x, Long y) -> x + y;
// 应用函数,给函数传值,得到计算结果
Long result = function.apply(1L, 2L);

本文首发于个人独立博客,文章链接:http://www.zebe.me/java-8-lambda-styles

你可能感兴趣的:(Java8)