Lambda表达式与函数式接口紧密相关,函数式接口介绍
- Lambda表达式的基本语法
(arg1) -> { body }
(int a, int b) -> { return a * b; }
() -> System.out.println("Hello lambda");
() -> "lamdba"
- Java Lambda表达式是一种匿名函数,它是没有声明的方法,即没有访问修饰符、返回值和名字。
- Lambda表达式传递的是行为
- 一个 Lambda 表达式可以有零个或多个参数
() -> "lambda"
val -> val + "lambda"
(val1, val2) -> val1 + "lambda" + val2 + "lamdba"
- 参数的类型既可以明确声明,也可以根据上下⽂文 来推断。
(val) -> "lambda"
(String val) -> "lambda"
- 所有参数需包含在圆括号内,参数之间⽤用逗号相隔。
(val1, val2) -> val1 + "lambda" + val2 + "lamdba"
- 空圆括号代表参数集为空。
() -> ""
- 当只有一个参数,且其类型可推导时,圆括号()可省略。
(val) -> "lambda"
() -> "lambda"
- Lambda表达式的主体可包含零条或多条语句。如果Lambda表达式的主体只有一条语句,花括号{}可省略。匿名函数的返回类型与该主体表达式一致。如果Lambda表达式的主体包含一条以上语句,则表达式必须包含在{}中,匿名函数的返回类型与代码块的返回类型一致,若没有返回则为空。
val -> {
System.out.println(val);
}
等价
val -> System.out.println(val)
val -> {
System.out.println("lambda");
System.out.println(val);
}