您的位置:首页 > 编程语言 > Java开发

深入浅出 Java 8 Lambda 表达式

2017-04-26 22:57 302 查看



Lambda 表达式简介

Lambda 表达式是一种匿名函数(对 Java 而言这并不完全正确,但现在姑且这么认为),简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。

你可以将其想做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。

Java 中的 Lambda 表达式通常使用 
(argument) -> (body)
 语法书写,例如:
(arg1, arg2...) -> { body }

(type1 arg1, type2 arg2...) -> { body }


以下是一些 Lambda 表达式的例子:
(int a, int b) -> {  return a + b; }

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

(String s) -> { System.out.println(s); }

() -> 42

() -> { return 3.1415 };



Lambda 表达式的结构

让我们了解一下 Lambda 表达式的结构。
一个 Lambda 表达式可以有零个或多个参数
参数的类型既可以明确声明,也可以根据上下文来推断。例如:
(int a)
(a)
效果相同
所有参数需包含在圆括号内,参数之间用逗号相隔。例如:
(a, b)
 或 
(int
a, int b)
 或 
(String a, int b, float c)

空圆括号代表参数集为空。例如:
() -> 42

当只有一个参数,且其类型可推导时,圆括号()可省略。例如:
a -> return a*a

Lambda 表达式的主体可包含零条或多条语句
如果 Lambda 表达式的主体只有一条语句,花括号{}可省略。匿名函数的返回类型与该主体表达式一致
如果 Lambda 表达式的主体包含一条以上语句,则表达式必须包含在花括号{}中(形成代码块)。匿名函数的返回类型与代码块的返回类型一致,若没有返回则为空

原文地址:http://blog.oneapm.com/apm-tech/226.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: